In maniera semplice: usando display table e table-cell sui div e assegnando un vertical-align: middle. Per Internet Explorer 7 e 6 che non supportano queste proprietà si può ricorrere a vari espedienti, il più veloce, avendo tu solo un div da centrare, è aggiungere del codice visibile a sole quelle versioni del browser. Esempio:
codice:
<div style="width:600px;height:300px; display:table;border:1px solid #fcf;margin:0 auto; padding:10px">
<div style="display: table-cell; vertical-align:middle; text-align:center">
<div style="height:100px; border:1px solid #fcf;">bla bla</div>
</div>
</div>
altrimenti bisognerà inserire un css per ie7 (e 6).
Esistono anche altre tecniche per centrare verticalmente, se ne è parlato in varie discussioni e con una ricerca nel forum potrai trovarle