How can I serve a separate CSS file for Internet Explorer?
Use drupal_add_css with the option 'browsers'.

drupal_add_css(
  path_to_theme() . '/ie.css',
  array(
    'browsers' =&gt; array(
      'IE' =&gt; 'lte IE 9',
      '!IE' =&gt; FALSE
    )
  )
);


You should add this function call in your theme's template.php file through template_preprocess_html like this:

function MYTHEME_preprocess_html(&amp;$vars){
  drupal_add_css(
      path_to_theme() . '/css/ie.css',
      array(
        'browsers' =&gt; array(
          'IE' =&gt; 'lte IE 9',
          '!IE' =&gt; FALSE
        )
      )
    );
}