I had a similar problem before and I emailed EA and this was their response:... (it worked).
Generally, lock ups are caused by either a background task running that is causing a conflict with the game or sound acceleration. We will address both of these to try to get this resolved.
First, make sure that you have closed any programs or tasks running in the background. To do this, hold the Ctrl and Alt keys down at the same time and hit the Del key once. This will in turn bring up a window called "Task Manager". You will then see 5 tabs; Applications, Processes, Performance, networking, and Users. Select the Processes tab; this will list all current programs that are running. Close all programs that have your login ID next to them. Your user ID is listed in the second column next to the program name. For example here is a portion of what you should see;
Image Name User Name Session ID
Explorer.exe Owner 01
The Image Name column is the name of the programs currently running. The User Name column is where you will find your User Name. The best way to check this is to locate "Explorer" and see what it says under User Name.
Also, do not close any applications that say "System" next to them. Be sure not to close a program labeled "Explorer" or "Taskmgr" as well. You close each one of these applications by clicking on each one and hitting the button "End Process". Note some applications may take multiple times before closing. Don't worry that you are permanently changing your system configuration; these applications will return when you restart your system.
The next step we can try is turning off Sound Acceleration. This means that we are disabling the hardware features that your sound card is capable of. But you will still hear sound in game. To do this, go to Start -> Run and type in "dxdiag" (without quotations) and then click Ok. Click on the Sound tab and slide the slider bar for Hardware Sound Acceleration from Full to No Acceleration. Close the DirectX Diagnostic Tool and launch the game