Хотя я ценю сарказм в ответе Джона, для ясности, на самом деле это не ошибка в браузере.
То, что происходит, - браузер написан, пытаясь соответствовать стандартам. Стандарты определяют ожидаемое поведение при наличии действительного HTML. Когда задан неработающий HTML, стандарт молчит, и поэтому, если IE9 пытается исправить отсутствующий тег, он предполагает, что он принадлежит в другом месте, и IE9 отображает его неправильно.
Вы можете заставить IE9 попытаться исправить плохой HTML, нажав F12 и изменив настройки совместимости.
Поскольку вы не можете ожидать, что ваш конечный пользователь согласится с этим, лучшим решением будет проверка генерируемого вами HTML-кода.