The Boss sends me an email today detailing my next project. He starts out by saying, "you should have some fun with it. Be creative!"
What's this exciting new project!? Generating error messages. Tedious? yes. Fun? no. Creative? Does he want me to write the messages in haiku?
Designing error messages (and how programs act upon failure) is contingency design, and it's really a UI problem. Like most UI, it's harder than you'd think to do really well. The user needs to know in plain language what went wrong, what caused it, and what they can do about it.
There used to be a nice collection of good and bad error usability examples called Design Not Found, but it seems to have been replaced by a link to a book. I was able to find an archive of the site, but it suffers from some missing images and character-set issues.