Non so che gusto ci sia a trasformare una cosa che contiene errori semantici in un'altra che nasce gia` vecchia. Sarebbe piu` utile passare a XHTML (possibilmente strict).
Tra l'altro con XHTML 1.0 Strict anche IE si comporta molto meglio (quasi come gli altri).

Comunque prova a sostituire (nel codice postato all'inizio) il tuo overflow con:
float: right;

Il blocco dovrebbe allargarsi il piu` possibile, se il blocco superiore ha una larghezza determinata (se e` definita in percentuale, la cosa e` ricorsiva, e in tal caso deve essere definito
width: 100%
sia nell'oggetto <body> che nell'<html>)