Bem simples, só editei o trecho que era necessário para enviar um history.pushState, no final da requisição ajax, que carrega a página em uma div, sem dar refresh no restante do site.

http://wbruno.com.br/2011/05/27/navegacao-sem-refresh-%E2%80%93-carregando-conteudo-ajax-em-div-2

$.ajax({
	url: href,
	success: function( response ){
		//forçando o parser
		var response = $( '<div>'+response+'</div>' );
				
		var data = response.find('#content').html();

		//apenas atrasando a troca, para mostrarmos o loading
		window.setTimeout( function(){
			content.fadeOut('slow', function(){
				content.html( data ).fadeIn();
							
				var title = response.find('title').text();
				window.history.pushState( href, title, href );
				document.title = title;
			});
		}, 500 );
	}
});

Notem a linha:

window.history.pushState( href, response.find('title'), href );

É essa nova função que veio junto com o HTML5, que faz toda a mágica.

Browsers antigos não implementam esse método.

Agora podemos parar de forçar a barra usando o document.location.hash, como nessa implementação aqui:

http://wbruno.com.br/2011/11/25/carregando-conteudo-ajax-trocando-url-jquery/

Demonstração

É isso. Dúvidas ? pergunte, comente!