Chiaramente stai lavorando su un browser standard, dato che IE si comporta in modo differente.

E pare che i CSS3 (quindi e` una cosa in prospettiva lontana) avranno una proprieta` che comprende tutta la larghezza/altezza, da poter definire al posto della larghezza/altezza interna.

Nel frattempo occorre lavorare con dei piccoli trucchi grafici.

Ma studiando il tuo codice, vedo che usi due blocchi uno esattamente interno all'altro (main e contenuti): chiaramente questo non serve: un blocco unico e` sufficiente.

Non conviene mai riempire tutta la larghezza: a seconda delle esigenze conviene fare in modo che la somma delle % sia tra 95 e 99. Lo spazio rimanente si puo` avanzarlo tutto da una parte, oppure tra i vari blocchi, studiando dei margini automatici opportuni (quelli del blocco centrale, oppure quelli dei blocchi laterali, o un misto).
Il gioco dei colori di sfondo puo` fare il resto, in modo che il tutto non si veda e sia gradevole.

Come dire: un po' di fantasia e un po' di esperienza fanno il miracolo.