C'e` qualche problema nel codice HTML:
Usi spesso blocchi vuoti: questi possono venir ignorati completamente dal browser, compresa la formattazione: un clear (o un width) in un blocco vuoto, puo` non venir interpretato ...

Inoltre usi le tabelle per formattare: questo e` un errore semantico, che pero` in qualche caso ti porta a difficolta` nei CSS, dato che le tabelle introducono non solo un significato nel contenuto, ma anche una loro propria formattazione.

Poi il codice e` molto lungo, e non riesco ad analizzarlo tutto ... prova comunque ad inserire uno spazio in uttti i blocchi vuoti: potrebbe sistemarsi il tutto.
Nota: per eliminare l'altezza minima di un blocco in IE6-, probabilmente devi anche definire font-size:0; nel CSS di tutti i blocchi "vuoti": infatti IE6 non permette altezze inferiori al font (anche se il font non e` usato).