The perfect promise paradox is the greatest killer of client relationships. It's a common trap that many project managers fall into starting out (including myself). In an effort to please our clients, we provide appealing estimates of cost, time, and quality. When life happens and we can't meet those promises, they have the opposite intended effect of upsetting everyone.
Example
If a client wants a project done in five weeks, and we think we can do it in two, we say "Five weeks! Ha, we can get it done in less than half the time. That's the benefit of working with us!"
Your client is happy, you're happy, the project gets started. A week goes by and things are going great, you're more than halfway through. All of a sudden, you catch a serious strain of the flu and are bedridden for days. You sheepishly go back to the client and ask for a 1-week extension. They're not thrilled, but they completely understand.
As soon as you recover, you get back to work and things seem to be picking up again! Another week goes by, and you're a few days from finishing the project when life pulls another one of its tricks on you... you spill a tall glass of water on your laptop and the screen goes blank. Not good.
Again, you sheepishly go back to the client and ask for an additional extension. This time they're not so forgiving about it. "We've already given you an extension, and now you want another?" They are beginning to lose faith in your abilities as a project manager.
You eventually turn in the project after having worked on it for three and a half weeks in total. You're stoked about the outcome, but your relationship with the client isn't as strong as it used to be. They thank you for the project, and you don't hear from them again.
The Lesson
In the client's eyes, you overpromised and underdelivered. You said it would take you two weeks, but it took you almost double. Once you set a high expectation—once you make your perfect promise—the client will lock into that new expectation that you've created and hold you to it. Remember in the beginning they were comfortable with it taking 5 weeks.
Recently, what I've been doing to overcome this is asking for more than I need. Clients, prospecting with you for the first time, expect a negotiation on the terms. If I know what the client is asking will take me two weeks and they say they want it done in 5 weeks, then I'll ask for 8. When they agree to that and something inevitably comes up, it's not a problem because I've given myself plenty of breathing room. One of my favorite new feelings is going back to the client with "Hey, I know we planned for this to take 8 weeks, but it actually only took three."
Always ask for more than you need. This applies to discussions around time, quality, cost, scope, and any other expectation setting that happens at the beginning of an engagement. Not every client will hound you on expectations, and not every project will run into hiccups, but why take the risk? It's much better to underpromise and overdeliver than the other way around.