If you are building a house or remodelling it, you are going to need a building contract. There are a few different models for building contracts. The key differences between different types of contracts are in how the contractors get paid and in who controls the project.
A fixed-cost contract is one in which you pay your contractor a certain amount for the job. This is convenient because it encourages him to work harder --- the quicker he gets the job done, the better his hourly rate.
On the other hand, it may result in you paying a higher hourly rate. If he estimates 20 hours but only takes 15 to do it, you're still on the hook for 20 hours. If, on the other hand, he estimates 20 hours and takes 30, he has to eat this loss --- you pay for 20 hours regardless.
A cost-plus contract is one in which the contractor gives an estimate for the job but also subjects that estimate to changes. So, if the situation in Step 1 occurs with 15 hours instead of 20, you would only have to pay for 15 hours. However, in the 30-hour situation, you would have to pay the 50 per cent above the estimate to compensate him.
A full contract is where the contractor is in charge of the entire job --- he will hire subcontractors, ensure building codes are met, procure materials and essentially deliver you a finished product. These give you peace of mind and a set price, but they do take you out of the loop a little. Since the contractor is running the project there is not as much oversight as there would be if you were in charge.
A labour-only contract is where you only pay the contractor for his work. You provide the materials, you hire the subcontractors and you essentially run the project --- the contractor is just an employee. These are useful if you have the time and expertise to run a project, but it may be difficult to find the right contractors and get materials at the right prices, as project management is a skill that uses relationships to get the best prices and labour --- relationships that you don't necessarily have.
Of course, since every contract is unique, it is important to note that these are just varieties of contracts. They can be mixed and matched to your individual projects.