Here is a couple of things that should help...
Spybot This searches for software (not viruses) that installed itself to your computer without you knowing. These spyware / malware packages are known to alter DLL files that games rely on, or to just cause havoc.
Assuming you are running Win XP try updating your DirectX to
DirectX 9.0c After you installed it, click on start. run and type in DXDIAG.
Run all the tests, especially the Video tests and see if there are any errors.
If you are running WinXP with Serivce pack 1
Here is a patch from Microsoft that helps prevent crashes
Patch Are you shutting down all non-essential programs (especially anti-virus) before starting the game?
If you are not sure that your computer is virus free (Norton/McCafee is well known for not finding a LOT of viruses) try this online scanner. Its a VERY good scanner
Trend Micro - Housecall You can also download
EndItAll2 to kill all the programs that are running in the background.