It seems to be taken for granted that the color red is appropriate to highlight errors. In the case of serious system errors, I agree. However, I'm having doubts that it's the right choice for user generated errors, like form validation.
It's common to see something like this:
To me, this feels equivalent to blaming or yelling at the user. I've considered something like this instead:
It feels like a message with a gentler tone even though the words are the same.
My opinion: Users don't need to feel like they caused an "error", and forms are already annoying enough as it is, especially when you've made a mistake or two (because after all, the user isn't trying to pass in an invalid email on purpose). It's just a small, correctable mistake - not a show-stopper.
System errors are a different thing: they aren't necessarily the user's fault, and they can really mean that something is broken or out of the user's control. Is there any reason why user generated errors should (or should not) be red?
* Note: I'm concerned about the colors, not necessarily the message text or icons.