To offer a different perspective, I charge strictly hourly on all of my contracts. I like the flexibility this offers me when a client wants to add or change something to the project. It also lets me decide how much my time is worth - for example if I have a lot of free time and nothing to do, I can offer discount rates (supply & demand, lots of time + no demand = cheap rates).
The down side to hourly rates is that it adds extra work to your bid. You have to be able to accurately estimate how long a particular project may take, which you may not be able to do if you're just starting out or if the project is complex.
As Tim.Baker said, make sure the requirements are clearly laid out. This is typically done through what is called a "statement of work", which amounts to a contract that explains in detail what the customer expects of you and what you expect of your customer. This should have a clause that describes how you will charge for any additional work the customer adds to the project later on - whether you will charge hourly for the extra work or renegotiate the SOW and project price.