I spent hours and hours trying to fix my Arma II install (to play DayZ). Arma II would run fine, but Operation Arrowhead would throw all sorts of bizarre and seemingly random errors. Unfortunately, I needed to play OA to have Steam set the CD key in the registry, but without OA working I could not play. I've finally come across a (rather obvious) fix that worked for me:
Just run steam as admin!
Haha, I bet that scared you for a moment! No, my solution goes further than this.
Assuming your Arma II install works but your OA doesn't launch (like my problem):
1. Uninstall Battleye from Arma II and Arma II:OA.
2. In your Arma II Operation Arrowhead folder, delete Arma2OA.exe.
3. Remove your @DayZ folder and anything else you may have added to your OA folder.
4. Remove any launch options from steam or shortcuts you use.
5. Make sure you have the correct *beta* version of Arma2OA.exe in your /expansion/beta/ folder. You may need to try reinstalling whatever version you are currently using and make sure that the date modified gets updated.
6. Now, if you are using Steam like me you need to do a verify game data on Arma II:OA. If your situation is like mine you should get 2 files, and you should see Arma2OA.exe appear back in your OA folder.
7. Restart steam in Admin mode and launch Arma II and it should prompt you to reinstall Battleye. Do so and pick something in the Armory to make sure it's working alright.
8. Still in Admin mode on steam, launch Arma II:OA and it should prompt you to install Battleye as well. Hopefully this will bring you the main screen with no issues. If you do have issues, either you missed a step or you have a corrupt install and may need to redownload (unless you already tried that, in which case: good luck with that).
9. If your Armory works then you can proceed with trying Combined Ops, if that works then you should be good to go and can put @DayZ back in and try running the beta again. I use the following wall of text as my launch target:
"C:\Program Files (x86)\Steam\steamapps\common\arma 2 operation arrowhead\arma2oa.exe" "-beta=Expansion\beta;Expansion\beta\Expansion" "-mod=C:\Program Files (x86)\Steam\steamapps\common\arma 2;Expansion;ca;@dayz" -nosplash -skipIntro -world=empty
This was recommended in the DayZ wiki and it seems to work great for me now. If you don't like the weird menu background then remove the "-world=empty"