Why does IE do things the way IE does?

I keep running into small (brick) walls with IE (mis)features. The latest one was when IE likes to send the whole file name … including path and drive … as the file upload name.
The previous one was when IE refused to do the AJAXified file upload progress meter. Works on all the other browsers on all the platforms I have tried. Just not IE.

I seem to remember something like this from some years ago with DragonFly’s predecessor. It couldn’t stand a table in the middle of a form (used to organize the presentation of the form), and would not display anything. Problem solved, by removing the table when IE was used. Made the display ugly, but it worked. The interesting thing was that this was W3C compliant HTML that IE barfed on.
I don’t want to play favorites with browsers, I want to write one code base and not worry about IE-isms. Sadly, I now have browser detect logic in the controllers, which I pass into the views. Let the views decide whether or not to use standard functionality.
If everyone just switched to Firefox or Opera this would not be a problem, stuff would just work. Aren’t standards wonderful.