I have done something like this before, and I found the best way to do it was to use the mod_rewrite calls in a .htaccess file.
This allows you to have url's like www.site.com/fred_bloggs/
You place the .htaccess with the mod_rewrite calls in the root directory of the site and set it to rewrite the URL to www.site.com/decipher.php (or whatever you want to call it).
From your script, you can recall the original page which was called from $SCRIPT_URL (I think) or $PHP_SELF. The actual scripts name is available in $SCRIPT_NAME.
There is a good article on this at http://www.alistapart.com/stories/succeed/ which describes the basics and should get you started. You may want to brush up on your regular expressions in order to write the rules for the site.
Of course, it relies on the fact that your ISP have mod_rewrite installed 🙂
The benefit of this method is that you can hide all your scripts names (if you are clever) without anyone (well, most people!) knowing they ever existed, and allows you to provide a decent virtual directory system.
As to IIS, I am not so sure of a method to do it in this system. IIS provides a virtual directory system, so I am guessing that there must be a way to do it someone, probably with some custom objects which allow you to set these up on the fly (without having to do it manually) and set where they point to.
Anyhow - hope this helps ya