Drupal 7 introduces a new preprocess function that basically process the output of everything in the html section of your rendered page.

Basically the function : function yourTheme_preprocess_html(&$variables) takes care of loading javascript file, css file and many more function that supposedly goes to the head section of your rendered page, although it is a powerful and convenient function to have, sometimes it can be a bit confusing to do simple things such as defining an Internet explorer only css.

To include the IE css in Drupal 6 or any html file one should just include this code somewhere in your html head section :

<!--[if IE 7]>
<link type="text/css" rel="stylesheet" href="cssfile.css" media="all" />
<![endif]-->

The above code is transformed to the following code if you want to do it the "Drupal way" in drupal 7 :

function  yourTheme_preprocess_html(&$variables)  {
  drupal_add_css(path_to_theme() . '/css/ie7-fixes.css', array('group' => CSS_THEME, 'browsers' => array('IE' => 'IE 7', '!IE' => FALSE), 'preprocess' => FALSE));
}

Now what do you think about this? is it necessary to complicate things to achieve the same result?