This sounds like a memory problem.
I used to have the same with several games that would lock up quite a lot, memtest86 gave no bad ram, but there was a tool from microsoft that did detect errors on the ram, after replacement it was fixed.

You can find the tool here:

http://oca.microsoft.com/en/windiag.asp