proprio cosi.
Ma non credo che ci sia una pura soluzione .css al tuo problema.
Se dovesse esistere, fammelo sapere

EDIT
Pensandoci su bene, una possibile soluzione esisterebbe, ma non so se funziona con IE8 e sotto:
codice:
<html>
<head>
<style>
div.esterno {
display: table-cell;
width: 500px;
height: 500px;
vertical-align: middle;
text-align: center;
}
div.interno {
display: inline-block;
width: 200px;
height: 200px;
text-align: left;
}
</style>
</head>
<body>
<div class="esterno"><div class="interno">contenuto</div></div>
</body>
</html>