Togli il width dal[*], e mettici invece:
margin: 0 auto;

In tal modo fai fare il lavoro al browser: gestisce i margini laterali di ciascun[*] in modo da renderli tutti uguali.

PS: probabilmente non funziona in IE6, e non so se ci sono hack CSS per questo problema: magari e` necessario un hack JS.

PS2: se puoi evitare di usare il padding (sostituendolo con il margin), ottieni piu` facilmente la compatibilita` cross-browser.

Nota:
background-position:right center;
e` sbagliato sintatticamente ( http://www.w3schools.com/css/css_reference.asp ): devi scrivere:
background-position: center right;