I've always found that having a Yes/No field works really well. Never let a user have any direct access doing anything on your database - do it through a form and prevent delete. When then press a "delete" button they just set a delete field (Yes/No) to yes.
Ensure that all of your queries hide reocrds that have a -1 on the delete field.
Every week, have a DB open via a scheduled task that runs a delete query. All records with a -1 Delete field get physically deleted.
Also, have a daily backup on a weekly tape cycle.
Cheers,
Steve.
"They have the internet on computers now!" - Homer Simpson