No doubt, people hate to be incompetent, people hate to feel stupid. This kind of feeling, should be taken into consideration when designing any interaction.
I was trying to change my yahoo password, after a 'long' and 'guessy' clicking, I've finally arrived on the change password page.

I've tried some new password, following their rule of minimum 6 characters. But it kept telling me : "The new password you entered is not valid".
This is another way to tell : "YOU'RE WRONG"!!!. And that's it...It's totally frustating me as a user.
This is much better, as some app will display a kind of robot language : " Error code 52.", "WindowError:008"., "No Such User."

So what should we do to create a good error message :
- Speak human if your users are human.
- Explain the condition, don't blame user, admit your mistake if there's something wrong with your system/app.
- Suggest a solution, don't blame user again even if it's their mistakes.