а без задавания размеров никак?
если я вызываю диалог в первый раз то он сам выравнивает свои размеры и центрируется по центру
если я вызываю тот же диалог во второй раз тогда криво работает
Если диалог это нечто не объемное по размеру и примерно всегда равное, то лучше задать размер по ширине фиксированный, и посредством CSS центрировать. Если нет, то ширина диалога будет известна только после помещения его в документ, после чего с помощью JS можно отцентрировать.