For years, Web developers have dealt with Microsoft Internet Explorer's many, many quirks by various tricks and hacks. The most consistent way to deal with IE's issues has been to use Internet Explorer conditional comments - a feature of IE since the "browser wars" between Netscape and Microsoft, back in the late 1990s.
To use them, designers would create two or more CSS files - one or more stylesheets for each version of Internet Explorer, plus another stylesheet for more standards-compliant browsers like Firefox, Chrome, and Safari. The Web page would load the standards-compliant stylesheet by default, but would load stylesheet(s) for IE based on link statements wrapped in conditional comments:
<link rel="stylesheet" type="text/css" href="standard.css" />
<link rel="stylesheet" type="text/css" href="funkyIE.css" />
"Wrapping" the second link statement in <!--[if IE]> and <![endif]--> caused it to be invisible to non-IE browsers. Firefox, Chrome, and Safari would use the standard.css stylesheet, while Internet Explorer would use the funkyIE.css stylesheet.
Although Internet Explorer has grown more standards-compliant with versions 7, 8, and this year's IE 9, Microsoft has retained the conditional comment facility - but according to the IE Blog on MSDN, conditional comments are going away to make IE 10 truly HTML5-compatible. Sites that use conditional comments to target older versions of IE will still work exactly as designed - for example, a site that targets IE 6 and older versions using [if lte IE 6] will still work fine, and IE 10 won't choke on the conditional comment. IE 10 will just ignore it, exactly as Firefox, Chrome, and Safari do now.
The IE Blog also notes "If you need to distinguish between more recent browsers, use feature detection instead." The linked article lists DOs and DON'Ts - DO use feature detection, DON'T use browser detection, DO use behavior detection, DON'T assume unrelated features.
Along with conditional comments, IE 10 is doing away with a couple of more obscure IE-only features: XML Data Islands, and Element Behaviors. I've never heard of anyone using XML Data Islands - indeed, I'd never encountered the term before. However, I have read about Element Behaviors used to add features found in standards-compliant browsers to IE 5.5 and 6. Since Microsoft is working to make IE more standards-compliant, it's time to lose these ancient hacks.