I found that I had to make these changes to get the game to work in full-screen mode. Once these changes were made it worked perfectly all the time.
In the registry set the following key:
HKEY_CURRENT_USER/Software/Wine/DirectInput/MouseWarpOverride = force
In winecfg add checkmarks to the following checkboxes:
Allow DirectX apps to stop the mouse leaving their window
Emulate a virtual desktop (enter your screens native resolution)
In UT2004/System/UT2004.ini in the [Engine.Engine] section:
Comment out your old RenderDevice
In UT2004/System/UT2004.ini in the [WinDrv.WindowsClient] section:
Set your WindowedViewport to your native resolution
Set your FullscreenViewport to your native resolution
Set your MenuViewport to your native resolution
I didn’t have to change the MouseWarpOverride setting to fix the mouse lock issue – simply running in a virtual desktop at my native resolution fixed that. Also, I couldn’t find an “Allow DirectX apps to stop the mouse leaving their window” option in winecfg, so I didn’t do that either. I did need to install lib32-openal to get the sound to play properly though. Once done, it all plays fine under 64-bit Arch Linux using wine-1.7.54.
P.S. There’s a native Linux client for UT2004, but rather than dig about the net finding ancient binaries, symbolic linking libs to pretend I have older versions and patching together a complete set of files from the Windows version I have, I’ve just opted to use wine. Once you’ve done the above setup it all works flawlessly.