[eluser]slowgary[/eluser]
I agree. Also, make sure your contract is based on the initial specifications and that the client understands that changing the specs or scope requires a written change order and additional costs. Then at least it's worth your while to implement the changes because you're being paid more for it. If you're billing hourly to begin with then you really just need to change your frame of mind (changes = additional income).
In the end you'll never stop clients from making changes as they don't always know what they want until they begin using the software. Asking a lot of questions up front and trying to exhaust the possibilities yourself is the best you can do. I usually find myself asking a client, "Would you also need the software to ___fill in the blank___?".
I had a first weekly meeting with a pro-bono client recently (a non profit group) and we discussed their needs. During the discussion the boss lady said, "... and then at next week's meeting when you bring it in, we can see if it needs anything changed". Client expectations are ridiculous sometimes, you just gotta learn to roll with the punches. I especially find that the client's perceived value of your work is exactly what they're paying for it. If they're paying nothing for it, they usually do not value it (or the work you put in). If they paid $10,000 for it, then "We have a $10,000 website!".
Bottom line - make sure you're compensated for all the work you're doing, even when the client changes their mind.