One of the main problems in web development today is the creation of browser-specific code; "IE6" in particular is a scapegoat for poor code. I found that once I studied MSDN and wrote no browser-specific code that IE 8 became elementary to support. IE 7 soon followed. IE 6 & 5.5 were close behind.
For CSS, the key is understanding that every page does not need to look the same. Furthermore, reading MSDN's CSS compatibility grid[1] provides more insight.
For JavaScript, the key is simplification. Using DOM 0 events over fancy DOM 3 events yields big gains. Avoiding selector engines will also yield gains.
I'm getting very tired of incompetent web developers and their browser elitism. Do your homework.
[0]: http://msdn.microsoft.com/en-us/library/ms533050(v=vs.85).as...
[1]: http://msdn.microsoft.com/en-us/library/cc351024(v=vs.85).as...