danik.js, ну можно сделать нормальные отдельные страницы и если поддерживается history API, то аяксом выдёргивать содержимое страницы, а если не поддерживается, то переходить по этой ссылке. Например:
$('a').click(function()
{
   var a = $(this).attr('href');
   if(!!(window.history && history.pushState && a))
   {
      $('body').load(a+' body');
      history.pushState(0, 0, a);
      return false;
   }
   else document.location = a;
});