Ну, тогда это имеет смысл ...
jQuery, вероятно, находит где-то содержимое #dialog
, и код внутри снова выполняется.
Почему в окне #dialog
есть JS? Это загружено с XHR? Если нет: переместите его туда, где находится остальная часть кода domready.
Хотите ли вы, чтобы событие вызывалось при отображении диалогового окна? Поэтому в диалоге есть код? Если это так, то для этого существует API событий: http://jqueryui.com/demos/dialog/#events