Okay, this happened to me before. I narrowed it down to 3 things: Vista itself, using DXTweaker with Vista, and a bad profile. Since then I've really not used Vista anymore. If you can dualboot (if you are even running on Vista), do so.
If you are using DXTweaker, stop. The other thing to do is go to My Documents -> My Games -> Halo CE -> savegames. Delete any folders in there. It'll delete your profile, but you can just make a new one once the game works again.
Bookmarks