@Dan Moore / Stuart Duel
"How come all of those sites work in Firefox, Crome, Opera etc? All of those largely follow web standards much more than IE, so why is it a problem when IE starts?"
Older (ie all current) versions of IE have pretty Epic Fails when rendering standards-compliant websites. So those websites, not wanting to scare away Joe Default Browser, have special-case code so that on IE, and IE only, the site renders "differently" (ie renders the same as the other browsers). So when ie8 comes along, it hits the ie-only code, and looks like ass as a result.
The problem is, for reasons that mystify me, the most popular methods for special-casing IE seem to be the most hackiest, and the least flexible. (using CSS hacks, for instance, or using conditional comments - the proper way - but specifying "IE" rather than specifying specific versions)
Also note that "standards compliant browser" is a loaded tern. Even CSS2 isn't a "standard" yet, and _no_ browser is totally CSS3 compliant (and CSS3 has a decent chance of changing, at least in subtle ways, before becoming fixed)
The root cause of the problem? Older versions of IE for causing the whole mess in the first place. But that doesn't mean the hordes of webdevs who hacked around the issues but can't be bothered to either globally add one header to the web config, or add one meta tag to their pages* (or even, oh my gosh, actually fix their sites), aren't stupid too.
*To make IE8 behave as IE7, which they've made their pages hacky to support