I recently started using a contractor after doing several rehabs myself. I already had a set list of materials I had been using and a good relationship with the commercial sales desk at lowes, so I set up an agreement with a contractor to provide building materials and labor only. I defined building materials as anything which cannot be seen on a complete project (subfloor, hardie bacter, mortar, drywall, screws etc.) After a lot of advice from bigger pockets (thanks JScott) I put together a spreadsheet of all my finish materials and item numbers/prices for each (cabinets, sinks, countertops, doors, faucets, etc.) all the way down to outlets, light switches and smoke detectors. I can now put together an order for a complete project (5-7k) in about an hour.
I'm sure we will end up with a few discrepancies on what are/are not building materials on the first couple jobs because it is impossible to define every item that goes into every house, but I secretly plan on a $500 contingency for those items alone.
This has allowed me to control exactly what goes into our properties and actually makes estimating the rehab costs much easier because I don't have to worry about the 100+ trips to lowes that I was making, especially as the project neared completion.
As for as negotiating with the contractor: I had several come out to look over a house that I had just closed on. It was pretty standard for what we normally do. Complete remodel. I had a detailed scope of work typed up and I had a price in mind for labor/building materials. Each one of them asked me my budget. I explained how I would buy all the finish materials and told them my budget for labor/building materials was $xxx.
A couple of them never even responded with a bid (I guess my numbers were pretty tight) but the one I really liked from the beginning negotiated the scope of work with me to meet my budget, and we were able to come to an agreement and start the job. I am currently about to begin my 4th rehab with this contractor, each time I walk through the house by myself and develop a scope of work. Then I come up with a budget target and tell the contractor what I want to spend. If he doesn't agree to the scope of work for a given price we negotiate both scope and price until we are satisfied.