If a user accidentally deletes a file say in a file folder or even deletes a
discussion entry, how do I go about restoring this?

We backup the database and also the file system on the server.