A mí con ese código el widget-upper me aparece centrado, porque ocupa el 100% del ancho.
El widget-middle a mí sólo se me ocurre no flotarlo a la izquierda y ponerle clear:both; para que se ponga debajo del widget-upper.
Código:
#widget-middle{
height:20px;
margin:0 auto;
width:1280px;
background-color:green;
clear: both;
}