I wish we had more UE (User Education for those not familiar with Microsoft acronyms) interaction when writing error messages. Usually, it is just a one or more devs that try and write some English (but remember we're CS or EE majors, not English or communications) that explains: what the compiler knows is wrong, why it is wrong, and hopefully the most likely way to correct it. I think this blog is sufficient proof of my English skills.
Somebody with real writing skills usually doesn't see it until a few weeks or months later when the UE teams goes to write help topics for the error message. And at that point very few UE guys understand enough of how a compiler works to properly document an error message to write a good topic not to mention improve the grammar or wording of the error message itself. UE usually rely on dev or QA to write some code that causes the error (a repro) and then more code that shows how to 'fix' the error. Then some UE are still really lost so they have dev write more of the topic, and they fix the grammar of that and publish it.
Now there have been some really good UE guys that have actually helped me (and hopefully others) write good error messages. There have also been some good devs or QAs that actually know proper English and are able to write good ones themselves. My word of advice: if you ever find somebody that understands a compiler, but for some strange reason still like writing English docs, don't ever let him go!