Как обычно есть несколько путёв достижения желаемого результата, в данном случае минимум три. И выбор путя зависит от многих, сейчас мне неизвестных, характеристик.
1. Обработка запроса на сервере.
+: не зависит от браузера, простота исполнения
-: медленно, эффект зависания
2. Обработка JavaScript или VBScript на клиенте.
+: быстро, эффект присутствия
-: ненадёжно, зависимомть от браузера, зависимомть от настроек клиента, ресурсоёмкость (100 стран по 100 городов = 10,000 городов из которых 90% никто не увидит)
3. Удалённые запросы серверу.
+: эффект присутствия, простота исполнения
-: зависимомть от браузера (?)
По первым двум пунктам понятно. Последний есть по сути микс двух первых. На сервере пишется класс с методом возвращающим названия городов для выбранной страны, а на клиенте этот метод вызывается из скрипта. Страница не перерисовывается и не загружена лишней информацией. Но, кажется, работает только под IE, хотя не уверен в этом, и только под ISS 5, в этом тоже сомневаюсь. Чтобы развеять сомнения поищи на
http://msdn.microsoft.com что-нибудь типа RemoteScripting или RSExecute.