It is possible to add a "trash bin" feature to the CMS, which means that no document is ever deleted, it is simply filed under a different directory structure outside of the preview and live sites.
In order to use this, you need to do the following:
Add to build.properties:
cms.use.trash.bin=on
Re-initialise the repository if the following property is not set:
operation.createTrashLocationAndSetAcl=true