Ваш оригинальный вопрос: как / почему IE отстой ... Я не буду вдаваться в эту адскую дыру, но скажу вам, что относительно просто вызвать ошибки компоновки / отображения в «более ранних» версиях.Хотя IE9 движется в правильном направлении.
Что касается рабочего кода, я не могу точно сказать, что вы сделали неправильно в этом конкретном случае, но, скорее всего, это комбинация одной или нескольких ошибок в крайнем случае и стилей IEМне не нравятся некоторые элементы.
Я перестроил меню с нуля, так как таким образом я точно знаю, что я делаю / знакомлю с каждым шагом ... Это просто большой опыт и поиск / чтение техредкие ошибки IE, чтобы быть в состоянии сделать это, это скучно.
РАБОЧИЙ КОД
http://jsfiddle.net/r52D6/69/
Отказ от ответственности: Это не было тщательно протестировано, нодолжно работать нормально, если только не в режиме причуд, конечно, он также работает в реальных браузерах.
Кстати, вы можете активировать режим совместимости на своем локальном ПК, используя инструмент разработчика IE (f12).Я также убедился, что ошибка в старом коде может быть воспроизведена в среде jsfiddles перед запуском.Имейте в виду, что jsfiddle имеет нормализующий скрипт, и не все фактические применяемые стили находятся в моем собственном коде, но я надеюсь, что вы справитесь с этим.