Возможно, проблема вовсе не в том, что цвет фона не работает, а в том, что размер тега div отличается от того, что вы думаете.
В IE есть ошибка рендеринга, из-за которой он расширяет элемент, чтобы охватить дочерние элементы даже в ситуациях, когда он не должен этого делать. Если в элементе div есть только плавающие элементы, они не должны влиять на размер элемента div, а высота элемента div равна нулю.
Очевидно, что вы не можете видеть цвет фона элемента с нулевой высотой.
Чтобы div получал его высоту от плавающих элементов, вы можете поместить невыполняющий очищающий div последним в div:
<div class="Clear"></div>
Используйте этот стиль:
.Clear { clear: both; height: 0; overflow: hidden; }
(Стиль переполнения таков, что IE не применяет другую подобную ошибку, делая очистку div одним символом, даже если вы указали высоту ноль.)