Hi Akela,
das Problem tritt auf, weil der IE (bis inkl. 7) diesen display type einfach nicht kennt. Deshalb tritt das Problem bei hard-codiertem xhtml und css auch nicht auf. Der IE ignoriert die Angabe und zeigt, was da steht: eine td (wenn du das aber mit einem div oder anderen block-level Element machst... Sollte man aber sowieso nicht tun)
Gunnars Lösung ist übrigens nicht so schlecht solange du das über JS machst. Wenn du hier display:; verteilst, müsste der type in deiner css wieder gültig werden (also keiner also td). display:; in der css führt aber zu einem Einlesefehler und ist nicht valide.
Gruß
Antipitch