This is what caught my attention: A huge feature list and constant feedback like from users like "we really need this" or "it would be great if we could do that", blah, blah, blah. I would break-down their feature list into cost/time objects that I could honestly deliver within the time specified for each feature. Then, make a projection as to the completion date (giving some room for any unforeseen circumstances that would add time to completion). Present that to them and let them pick which of the objects they want to complete, they would already know how much time they would have to wait for deliverables. But the most important thing, I think is the scope creep. You have to make them understand that each feature will add time to the completion date (not to mention cost, as someone here posted, don't have their post visible at the moment). I did a website about 7 years ago where the scope was firm and the quote was based on the scope. But then, the whole purpose of the site changed and I agreed to stay on, but was expected to complete it within the same time as the original purpose along with the "constant feedback, 'we really need this' or 'it would be great if we could do that', blah, blah, blah.". As well as the many websites they would ask me to look at. Each week they would like the look of one website or another. I did however, complete the project and we still have a business relation. Thanks to my caving and giving them what they wanted. Was I ever glad to finish that one! That's when I decided to never cave or deviate from the initial scope/expectations and schedule without the mutual understanding that the impact would involve time and money.