Every other day, my Contacts List will crash, and the only way for me to access it is to power off the phone.
What is happening for this to happen, and what can I do to prevent it in future?
You might have an app that's adding spurious records to your calling list. Do you have any "alternative phone" application (I had problems with an app called Amivox). I created a small app to fix the problem for me: https://dl.dropbox.com/u/18637933/CallLogFixer.apk ... hope it works for you.
EDIT: The app source code: https://github.com/gardarh/android-callogfixer