I've been writing some AJAX code recently, and while the ASP.Net AJAX Extensions have helped make things easier a great deal, when it comes to a point where I need to do something advanced and extremely funky I have to write code to manipulate the document directly.
And that's when the nightmare starts... writing DOM manipulation code is like a roller coaster, you get the feature running in IE you mood is high, then you test it in Firefox and you find out you used functions which don't work in Firefox and you come crashing down to earth. Then you get code that works in Firefox, but has problems with IE.
Eventually you figure out what works and what doesn't and your JS file is just filled with IF statements ensuring that the proper code is executed for each specific browser.
I'm just lucky we didn't promise Safari or Opera support!