The issue is that, for bigger projects, you start running into the problems related to a "waterfall" approach. As an alternative, you could look into how "agile" organizations approach their contracts -- basically by selling the ability to work on "stories" for as long as the customer wants them to -- and the deliverables for each story are very fine-grained.
Either way, without active involvement of the customer to either elicit requirements up front or validate your stories as you go, you'll be in for a rough time. It's probably better to have an honest discussion with them about this, because it's in their best interest after all.