Is there a way to customize the Contact Dashboard?
Laryn covers basic customization of the main dashboard (assuming that's the dashboard you're referring to).  You can also customize further:


If you're running Drupal, Views in Dashlets is a great way to get highly-customized dashlets with no coding.
If you ARE looking for coding suggestions, hook_civicrm_dashboard is the place to look.  Also check out hook_civicrm_dashboard_defaults to handle setting the default dashlets for your users.