Guarda che se togli un po di pixel la soluzione per centrare il div nello schermo resta intatta !!

Ammettiamo che togli per esempio 50px in altezza e 50 in larghezza il tuo codice divianta:
codice:
#main{
 position:absolute;
 top:50%;
 left:50%;
 width:877;
 height: 730px;
 margin; -365px 0 0 -439px;
 }
Io ho fatto l'esempio dei 50px; ma tu puoi togliere quelli che vuoi adattando i valori di margin e il div sarà sempre centrato in orizzontale e in verticale