Recently was trying out the new urlMappings options of asp.net v2 framework. Though the concept is old and it has been beaten to death through various implementations, it is heartening to see finally the framework is providing a inbuilt solution. But the catch is that the overall support for url mapping is very basic, for instead you cannot use wildcard or regex expressions for url substitution which means you will have to figure out a way to manually enter all the possible mappings.
One more headache which I came across when trying to use url mapping is that it does not allow you to provide mappedUrl's which point to anchored names. For instance if I want to map ~/Category/Car.aspx to ~/Categories.aspx#Car it wont work coz the framework is trying to validate the availability of file named "Categories.aspx#Car" ... duhh!. One workaround I employed for this is to provide a redirection page which will then redirect the user to the proper location;
For example lets take the above example, I create a new Redirect.aspx which just does a Response.Redirect(Request["TargetUrl"]) in the Page_Load and in the mappedUrl section I have provided the url as ~/Redirect.aspx?TargetUrl=/Categories.aspx#Car
The drawback with this approach is that the client should have allowed automatic redirection and also you have to make sure that the redirector page is not used for any other phishing purpose.