Por las dudas aclaro un poco: lo que no se puede, sin recargar, es modificar la url; pero sí es posible, sin recargar, modificar el hash únicamente.
Ya van varios mensajes que preguntan cómo hace facebook con su visor de fotos para modificar la url sin recargar. Si a lo que se refieren es a modificar el hash, es decir, el agregado de un signo # con una seria de caracteres a continuación, éso sí es perfectamente posible sin recargar. Lo que no es posible es realizar cualquier otro cambio en la url sin provocar una recarga (si eso parece que sucede, no es que la página no recarga sino que la recarga no se percibe a simple vista, pero es fácilmente comprobable la recarga con herramientas como firebug).
Un ejemplo de modificación del hash sin provocar recarga (también de obtensión del hash):
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<script type="text/javascript">
onload=function(){alert('cargamos');}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<input onclick="location.hash='hola'" type="button" name="button" id="button" value="cambiar" />
<input onclick="location.hash=''" type="button" name="button" id="button" value="cambiar sin hash" />
<input type="button" name="button2" id="button2" value="leer" onclick="alert(location.hash);" />
</form>
</body>
</html>