There are quite a few ways to disable the submit functionality after the user clicks submit once.
2) Actually disabling the submit button is easier. Refer to http://www.dynamicdrive.com/dynamicindex11/submitonce.htm
for the code.
As for the second part of your question, I posted a possible solution to this problem in some detail a while ago either on this board or on www.theserverside.com.
It didn't get much attention which surprised as I too thought this issue would be more widely addressed. If you can find that post (search using my last name... it is pretty distinctive) it will describe a means whereby you can probably accomplish this. I am pretty sure my approach would work if not for the little quirks I stumbled across which could most likely be accounted for quite easily.
Good luck and if you find a good answer please post it.