Data structures in functional languages behave exactly in this way:
I use an ad-blocker and the main reason is Ars!
I never used an ad-blocker, but their advertising was so intrusive that an ad-blocker was a necessity to be able to read their news on a netbook with a small screen.
You have two options:
The first: be the BOFH and laugh at the stupid users, who do not read/understand the error.
The second: be the smart programmer and anticipate user errors.
This means that for typical user errors you should provide a concise description of the problem and a text explaining how to correct the problem.
"The date you entered is wrong." should be "The date you entered cannot be parsed. Please provide the date in the format YYYY/MM/DD, e.g. 2009/12/12".
Of course, if an error pops up multiple time a day, it may be that the software is not very intuitive.