If you wanted to do it without annoying the user greatly you would need to use AJAX on a timer.
I'm assuming this is for when the user is writing a lot of text - maybe in a blog or similar ? if not then you must have one hell of a large (or complicated) form if the user will be there for periods of 5,10,15 minutes or more - if so, your time is probably better spent re-designing the form to be more usable and process in manageable steps.
If it is for when users write a LOT of text, then below is an outline of the general concept:
You'll need:
1. To set a timeout that calls a function every 5 minutes (client javascript).
2. To write a function that uses XMLHTTP/AJAX (Asynchronous Javascript and XML) which will read the form content, wrap it up into an XML document and call the remote 'save' function asynchronously using XMLHTTP (client javascript).
3. The remote save script will parse this content and save to a temporary place (e.g. database) (ASP)
4. Upon properly submitting the form the submitted data would be used to update the DB/whatever and the temporary data should be removed (ASP)
5. If this doesn't happen you need to check against the temp table everytime a user opens the form page and fill out the form with the saved data. (ASP)
There are a few things to consider on the way - but the general outline above should point you in the right direction. I suggest you get as far as you can, then post the relevant bits that you need help with in either this or the javascript forum.
A smile is worth a thousand kind words. So smile, it's easy! 