Hat jemand eine Idee, woran das liegen könnte?
Daran, dass der Internet Explorer 7 oder abwärts nicht Standardkonform arbeitet bzw. einige Dinge nicht versteht bzw. fehlerhaft interpretiert.
Die vermutlich einfachste vorgehensweise:
Erstelle ein Duplikat deiner CSS datei und ändere sie so ab, dass der Internet Explorer 7 die Seite richtig darstellt.
Vergleiche diese Datei mit der Originaldatei.
Nun entferne alle Selektoren bzw. Regeln, die in beiden Dateien identisch sind.
Alles was übrig bleibt, bindest du zusätzlich für den IE 7 mit Conditional Comments ein oder suchst entsprechende CSS-Hacks, die diese Regeln nur dem IE 7 vorsetzen.