Many times, quotes can be underestimated. Every project is different. Designers must take various factors into account when gathering client requirements.
Solution 1: Agree to a budget beforehand.
We can tell you if a budget is reasonable for what you're trying to accomplish. If it's tight, we can help you prioritize features, and make sure the critical ones are done first before the budget is exhausted.
Problem 2: Requirements are not specific.
You need to be extremely specific and detailed about what the finished site needs to look like, and how it needs to operate. The overall cost of the project can change alot based on seemingly minor requirements. You get through part of the project, and realize the requirements overlooked some critical feature you really need, or didn't specify clearly enough. Now all work comes to a halt as the developer needs to renegotiate the contract. The client is unhappy because they're paying more, and the project is late.
Problem 3: Requirements prevent changing to a more suitable solution.
We get part way through building a site, and realize that if we had chosen a different approach or platform, the end result would work much better for the client. But we're far enough down the path of the current development to back up, and our original approach does fulfill the requirement. We're unhappy delivering a site that could be better, and our customers end up with a clunkier, less than optimal site—but it's easier than going back and renegotiating with the client.
Solution for Problem 2 & 3: Scrap the requirements.
Requirements can almost always generate resentment, and they're also largely unnecessary for small web projects. It is important to have a clear agreement and what is being delivered. Unfortunately, there are a ton of variables, and many of them are not discovered until the project is well underway. Doing the groundwork to identify all the possible pitfalls of a project is probably about half the actual work of a project—and in most cases, that's far more of an investment than the client wants to make without an actual result. Designers almost always put far more into the discovery than planned.
Instead of having hard requirements, we help our customers identify goals and rank them by priority. We start with a previously-finished configuration, and use the budget to modify that configuration towards the goals.