mmm, lo básico es un setInterval que analice el window.location.
hash, el plugin jQuery History creo que lo hace así, podrías usar ése.
también tienes la API HTML5 PushState, pero aún no pruebo como funciona, lo bueno es que elimina el hash (#), pero requiere un navegador compatible, saludos