I actually wrote an abstraction layer that normalized it a bit. Not nearly as cleanly as the DOM API eventually did, but enough to get work done (for the most part). Still had to do things like have a white overlay set/unset on the screen for NN to avoid visual flickering, etc.
document.all, the way IE worked had a few advantages... Layers in NN didn't allow you to break apart a form into child components you could hide/show was a particular issue. So you had to mirror values in/out of the child layer portions of the form. That was about the most common and painful problem between the two imho.
Another was when IE 5.0.0 broke the older API for dealing with changing the children of a <select> node. Which was fixed in 5.0.1, but 5.0.0 was on every Office 2000 and Windows 2000 Disc, and what a LOT of people had. That was painful to deal with too.