Да, не используйте недопустимые хаки CSS, они очень хрупкие.
Для конкретного случая выбора IE лучше использовать условные комментарии. Большинство решений помещают дополнительные таблицы стилей в CC, но если вы не хотите этого делать, вы можете переключать классы с помощью CC:
<!--[if IE 6]> <body class="ie6"> <![endif]-->
<!--[if IE 7]> <body class="ie7"> <![endif]-->
<!--[if gte IE 8]><!--> <body> <!--<![endif]-->
, а затем сделайте все ваши стили в одном месте в зависимости от класса:
#something { top:-15px; }
body.ie7 #something { top:-10px; }
body.ie6 #something { top:-1px; }
(Предполагается, что IE8 «в порядке» и должен обслуживаться по тем же правилам, что и другие браузеры, следовательно, «нисходящий уровень» CC, который позволяет всем остальным видеть бесклассовый <body>
.)