Here's what works for me. Thanks to all those from whose posts in different places that I have gathered these steps. I've used this on sidux, Mint 8 and openSUSE 11.3. This works using the downloaded version from GamersGate. Using the CD version may be different. Using the Steam version is probably much different.
Install Microsoft DirectX Runtime - Modern into a new bottle (something like HOI3).
Install Microsoft .Net Framework 3.0 into the HOI3 bottle.
Install the game into the HOI3 bottle. DO NOT start the game when you have the option to do so.
Install all patches and packs you wish to use into HOI3.
Download a copy of MSVCP60.DLL and copy to .cxgames/HOI3/drive_c/windows/sytem32.
From Manage Bottles run regedit.
In HKEY_CURRENT_USER/Software/Wine create keys Direct3D and DirectSound.
In Direct3D create string value DirectDrawRenderer in Direct3D and set to opengl.
In Direct3D create string value OffscreenRenderingMode in Direct3D and set to fbo (alternatively pbuffer or backbuffer - fbo is what works for me).
In Direct3D create string value PixelShaderMode in Direct3D and set to opengl.
In Direct3D create string value VideoMemorySize in Direct3D and set to the amount of RAM in MB on your video card.
In Direct3D create string value MaxShadowSize in Direct3D and set to 0.
Close Regedit.
At this point the game may run if you are on a standard 4x3 resolution monitor. It would crash for me on "Creating World," I suspect because I'm on a wide-screen monitor. So I:
Go to Manage Bottles>Control Panel>Wine Configuration>Graphics and check Emulate a Virtual Desktop.
Close all of the above and start the game. Go to Custom Game>Options and set the resolution to the same as your desktop.
Exit the game, go back into Wine Configuration and uncheck the Virtual Desktop option. Close out and you should be ready to play.
Remaining issues for me are that there is no music in the game (though FX are fine) and when exiting I frequently have a Windows error message and a remaining zombie process that has to be killed, sometimes requiring a full reboot. For some reason this is less of a problem on openSUSE 11.3 than on the other distributions...