не ругайся с CSS у меня не очень, я некоторые вещи решаю через JS ;D
http://jsfiddle.net/aEgC6/
Логика такая, если окно меньше чем твой контейнер, то контейнер берет текущую высоту которая меньше >400px уже, и следовательно твой контент будет по центру(вертикально) всегда этого блока.