NEVER do browser detection
Because your site should simply degrade into each browser. If you think you need browser detection, then you almost certainly tried something overly clever and cocked it up. If you absolutely must do detection, do it based upon 'feature supported' - you don't want to have to cope with every possible browser and you certainly don't want to have to maintain it forever. And, of course, you've forced most non-IE browsers to simply fake their version string responces anyway.
Ah, slight confusion there. My idea of browser detection is of the 'feature supported' variety rather than the 'Oh look, not IE!' variety. I like the idea of having personally forced browsers to fake their version string but... If the browser detection script was written well, then a non-IE browser pretending to be IE would only lead to errors with script that was never supposed to be run on IE. This, of course, assumes that the programmer doesn't lump everything non-IE into the 'nothing works' category (or, even better, into the 'here's a link to upgrade to IE' category :) ) which I'm guessing is what you are accusing me of... - Kazuhiko
Ok, first, obviously, 'you' is referring to 'in general' not you specifically. Feature supported should be done by the individual elements, (using ALT tags, for example) rather than having to maintain a list of what every browser supports. Come to think of it, even IE fakes its version string, in that it looks like Netscape2 to something that doesn't look very hard. Done properly, the whole thing should just degrade nicely - no script required.