This is a problem that is best dealt with pro-actively rather than re-actively. Any re-active approach is going to have mixed results. Once the blocks are marked as unused any write requests may overwrite the data that was important. After all this is why windows has it's recycling bin. So any tool that is un-deleting data should be a tool of last resort.
I find it best to have people work off the servers where the data can be centrally managed with things like snapshots, redundancy, and backups. But users always find ways and reasons to work locally at times.
I don't deal with windows too much so I can't really speak at any length about all the options that may be out there but there are tools available to deal with this problem in a pro-active way. The easiest to admin would likely be a service such as Iron Mountain, Mozy, Carbonite that do near continuous backups. If you have a Windows Domain or Active Directory you can set up the policies to have roaming profiles to keep a copy of the users profiles on the server where snapshots and backups can play a role. There are also options for having locally run continuous data protection rather than an online service. I'm sure there are solutions that I don't know about as well.
If you must deal with this in a re-active way and you're only dealing with NTFS then RestorePro 2000 is worth a look. They have a version that works over a network and it's pretty affordable. I've never used the network version so I can't comment on how it works but the local version works great as long as the blocks haven't been overwritten. And it appears that they have come out with a new version and changed the product name to Restorer Ultimate. It's good to see that they are continuing their cheezy naming scheme.
More information can be found on their website http://www.restorer-ultimate.com/