There really isn't anything OOTB to handle this in the list UI or Object Model.
Generally, this sort of thing is best handled by using a add-on workflow system
(Captaris, K2.Net, BizTalk, etc), using the list simply as a data source rather
than using the List UI itself.