You really should not be attaching events that way. This is bad for a number of reasons, the biggest of which is that you only get one event per element. Personally, I really like the observe method from prototype.js, but with what you are talking about MooTools might be better.
It is really pretty rare that you should have to pass variables that way. Just use objects and store your variables in that object.
They do however show that it IS possible for other browsers to support features that MS have invented, features that (many of them) actually make things better.
Yes, but a lot of them make life harder, and a lot of IE's quirks are just plain buggy. The point is that the web should be cross-platform: you have a standard and you code to it. Vendors should not have to implement features invented by a third party that may or may not be properly documented (ooxml anyone?). This is why we have the W3C to develop and innovate standards. Hell, MS helped write a lot of the standards that they don't implement.
Basically, whatever platform you're used to programming for, be it mozilla or ie, the other one IS going to seem alien to you, and stuff is frustratingly not gonna work on it.
A browser is not a platform. It should implement the standard so that we can code to it... "write once, run anywhere" should not be a paradigm reserved for Java.
But for you, the one you hate is IE rather than FF, which can only lead to the conclusion that IT'S SUBJECTIVE!
It is not subjective. There is a standard. While no browser implements it fully, IE is (still) the worst.