There is NO perfect procedures - all involve some form of manual reconcilation from time to time.
Some ideas:
* Use the out of the box duplicate detection
* Use bulk delete to clear out data no longer needed in system
* Use business rules/javascript to enforce user data integrity
* Use workflow to enforce user data integrity
* Run reports on a regular bases to clean-up data
* Review process flow and fine-tune the design to enforce data integrity such as using Business process flows
Good CRM Links
My CRM Blog: http://mscrmonline.wordpress.com