On the UI Side, for a big project I'll split the job into multiple parts. First, prior to even taking the job, I'll document the requirements, audience, and technical limitations. Once I've gone back and forth with the client to get things right, I'll quote (and bill) a design phase (not technical) where I'll do nothing but wireframe the UI and document the site's structure/flow/navigation patterns. Upon completion, I'll final bill that phase, hand it off to the client, and bid (with documentation) to begin the application development phase.
Sure, this allows the client to leave me before I get the chance to do the big $$$ work, but it's never happened--clients appreciate the communication and believe it or not in 10 years of work I've never been involved in a dispute about scope creep.
There's a non-technical side to this argument. Ask them offbeat questions to find out their personality...it's as important as the technical requirements. Through these questions, find out their level of detail, organization, knowledge of the web, personal preferences, etc. Are they high-maintenance....don't ask them that one directly! If I get a hint that I have a potentially "challenging" client, I always bill hourly so I don't lose my shorts doing tech support.
Documenting the timeline is important, especially if you're moonlighting. If you're freelancing, you can't be doing re-writes when your 9-5 expects you to be writing code for them!
If you're doing websites, get SEO in writing so the expectation is clear. I've had a client hold up payment because Google didn't pickup their site for a few weeks...even though SEO was never part of the deal. Document not only what you will do, but what will be additional. From a marketing point of view, nothing is impossible...it just costs more.
Finally, have a good support/warranty and honor it. My personal policy is that I'll fix any bug in my code (excludes errors from CMS entered html) at no cost to the client for two years. Sure, it's made a little bit of extra work, but I'm also turning away work based solely on referrals--so it must be working.