The way I charge for my websites is:
1. Go over with client exactly what is needed for the site (flat site, databases, how many pages, etc.)
2. What the client will supply (content text, pictures, etc)
3. Then I work out number of hours it will take me to create the finished site and price it out based on an hourly rate.
4. Take this back to the client as a proposal for them, if they agree to it we then sign a contract stipulating all the work to be done, what they will provide, and any costs added if they can't provide something needed.
5. The contract will also contain clauses for a mock-up site to be delivered for their approval.
I allow 3 mockups delivered before it must be finalized, any changes after that are an extra charge at $X per hour.
I have standard contracts for my clients that have been written by my lawyer. These have saved me countless hours and dollars with my clients. It also shows that you are a professional.
Mike...