Если высота обойх дивов будет фиксированной:
html,body {
margin:0px;
}
#d1 {
position:relative;
background-color:#3399FF;
width:400px;
height:400px;
border:1px solid #3399FF;
}
#d2 {
position:relative;
top:50%;
background-color:#FF6699;
width:200px;
height:200px;
margin:-100px auto 0 auto;
}
Не тестил, но работать должно.