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>