I've sent an email to EA support about those issues, please have a look at their response and try not to laugh (or not to cry):
Greetings,
Thank you for contacting Electronic Arts.
I apologize for any inconvenience caused to you thus far. Regarding this issue I would like to suggest you that please turn off the two screens and try to play the game on on screen because game has problem in order to detracting screen. Please try to play the game on single screen.
If there is anything else I can help you with please let me know
GG EA, GG.
Seriously, how hard would this be to fix in a patch? Plenty of other developers have added centered HUDs to surround resolutions in the past post-release.
Hmm, let's see...
Code:
HMONITOR center = MonitorFromPoint(POINT((xRes/2)-1, (yRes/2)+1); // get a handle to the center monitor
LPMONITORINFO lpCenterMi; // pointer to a struct that contains virtual screen coordinates of a monitor
lpCenterMi->cbsize = sizeof(MONITORINFO); // specify the struct to populate
if(GetMonitorInfo(center, lpCenterMi)) { // populates the struct with info of the passed in monitor, returns true if successful
HUD.left = lpCenterMi->rcMonitor.left;
HUD.right = lpCenterMi->rcMonitor.right;
HUD.top = lpCenterMi->rcMonitor.top;
HUD.bottom = lpCenterMi->rcMonitor.bottom;
}
This is quick and dirty assuming the HUD structure or class contains points of a RECT for drawing. There also needs to be some manipulation of the coordinates in case the values returned are negative. The point is it is not difficult because the Windows SDK contains these functions for multiple monitors already, the developer just has to use them. I haven't looked at the most recent DirectX SDK, but I'm sure it either uses these functions or it contains functions similar to those in the Windows SDK.