When should a hard repair be run on the database?
A hard repair is for a restore without transaction log files. It is also not recommend by Microsoft to do this because it brings the database up in an inconsistence state. Please see the following Microsoft KB Article for further information about a hard repair,
Ramifications of running the eseutil /p or edbutil /d /r command
(http://support.microsoft.com/default.aspx?scid=kb;en-us;259851)