Mistakes that Microsoft made in the development of its browser - for commercial reasons that at the time were perfectly reasonable - have now come back to haunt its modern incarnation in a way that looks impossible to exorcise. So, because of decisions taken in the late 1990s, any future version of IE will be forced to render some web pages as though it were the clunkiest product that ever walked the earth.
Back in 2001, Microsoft conquered the browser world with Internet Explorer 6. Meanwhile Netscape Navigator expired, but not before breathing its last words, rather like Obi-Wan Kenobi facing Darth Vader: If you kill me, I'll become stronger than you can imagine. IE had killed Netscape - or so Microsoft thought.
By 2001, web developers had grown used to the "IE tax". When designing a web page they had to check to see whether the incoming browser identified itself as Internet Explorer (using the "browser agent string" that every browser passes to the server). If so, they served up one set of HTML that dealt with the strange quirks of IE6. If not, they served up the more standardised HTML. This became so familiar that some developers began to think that it was the other browsers that were at fault. But no, it was IE that didn't conform to standards for layout.
...
Is being treated as quirky so bad? Yes, for IE. It means that it has to carry a greater overhead of code, some to render the old 'quirky' code and some to render the new, compliant code. Dave Hyatt, who is in charge of Apple's WebKit browser code - also used in the iPhone and in Google's promised Android mobile phone platform - points to this as the real problem:
'We think maintaining multiple versions of the [WebKit] engine would have many downsides for us and little upside. The IE team is, of course, under different constraints and free to make their own choices.'
Except, of course, the IE team can't make many choices. They're stuck with it. The new scheme that they have come up with for Internet Explorer 8 - due some time in the next year or so - demands that web developers include a tag in the headers of the page saying 'X-UA-Compatible', which translates to 'Welcome, standards-compliant IE!' If IE doesn't find that tag, it will assume the web page is assuming that it is an old, quirk-ridden version.