I don't care how good you are at programming, finding bugs, whatever. If you're rude, or if you speak poorly to people who don't understand your... quirks.... you will wind up being shunted to the side. No one wants to work with someone who makes them feel beat down all the time, or someone who they simply can't understand, or someone whose reaction to every issue is to start wailing about the end of the world.
There are two circles you work with. First there are those who you work with constantly and who understand that when you say, "what moron would check in something like that?!", you really mean, "there might be an issue in this code" and further that there's a good chance the moron was you. You can let your hair down around this group a bit. There's still a line, but it's further away.
Then there's the circle of people who you work with less often. This group isn't exposed to you every day and doesn't necessarily appreciate that your passionate attack is about the work rather than the person.
So what's the secret? Easy. Figure out your circle, and then:
Be relentlessly nice.
It's a high bar to cross. You have to be informed. You have to be able to consider ideas quickly and effectively. You have to be able to translate concepts into language sales, marketing, and development can all understand. You really do have to be good..... and you have to be nice.
You'll feel provoked sometimes (not everyone is as good as you are about considering their coworkers); be nice and refuse to engage. You'll be frustrated sometimes; be nice. In the end you'll get pretty good at it. (Good sales guys, by the way, are amazing at this in front of clients.)
Being very good at what you do makes you just that: very good. Being very good and being nice: that makes you great.
UPDATE 2009-06-16: It occurred to me that I failed to define "nice", so I posted an update attempting to clarify my thoughts.