The hashed url is often used in place of actually going back to the server for another page (that is, the page load is intercepted by Javascript).
The hash and anything after it is not usually sent to the server...
Imagine the following scenario...
<a id="SomeLink" href="#DoSomething">
You then attach an onclick using Javascript...
$("#SomeLink").click(function() {...})
If that click function doesn't return false
, the url will now have a #DoSomething
on the end of it, even though a request to the server hasn't been made.
It can also be useful as a placeholder for manipulating the history so you can have greater control over the Back/Forward buttons (or many otherclient-side javscript tricks). See history.js as an example.