Wayne, we've structured our fixed-price projects with deliverables that have controlled this well for us. We do spend more time up front coming up with the contents of the 3 options, but when done, it's pretty clear what they are NOT getting. Especially with projects that we know will generate creep as the customer actually starts thinking about the details, we close those off in the SOW.
Some things, like reports are always hard. So I use a design process instead.
1. the SOW describes the report, parameters and purpose. I structure that explicitly based on our talks, and purposely describe it to exclude the obvious ways it gets extended. (reports always start simpler than they end up). If I think they'll want to extend it, I'll explicitly describe that in a higher option. again, so they see that they are choosing.
2. they agree to the SOW, and we do a draft meeting those objectives and parameters. We deliver that, and go through details with customers. we will agree to changes within the limits of the original description, and of course the cosmetic and layout changes.
3. We do draft #2, and now the customer can make ONLY cosmetic changes within the limits of the layout approved after Draft 1.
4. we make the cosmetic changes, and we are done.
For ""quick questions gone wild"" situation. The trick here is deal with the only quick question, and explicitly tell them that further consulting on the problem wasn't part of the SOW. It puts them on notice for when they come back. Better still, you usually see these situations coming when you layout the original work. Bake in further consultations as PART of the Premium option. When they want you to consult, you remind them that they passed on that option, and that the Premium option, +20% of the difference between the option they bought and the Premium, applies. (This is part of the T&C for each proposal.)
Some of the ways we've learned to deal with related problems are in our customer agreement, which is in addition to the actual project plan.