Using the Steam version on Crossover 12 on Ubuntu 12.04.
The key is to rename the game executable to Launcher.exe as appropriate - to play the Grand Campaign in the original version, rename the medieval2.exe to Launcher.exe and to play the expansion campaigns from the Kingdoms version, rename the kingdoms.exe to Launcher.exe AND append the module to be run as an option, as detailed here:
I even have the 3rd Age Mod working using the technique for the Kingdoms expansion. Append the location of the 3rd Age mod - for example "--features.mod=mods/Third_Age_3" (awesome mod BTW)
Then it is fairly easy to write scripts to rename files & run whichever campaign you want. I even combined everything together into a zenity menu, so I can choose which campaign to run using one desktop-launcher. Make a copy of the Launcher.exe, medieval2.exe and kingdoms.exe files first.
Also, once I had Medieval II and the Kingdoms expansion installed & updated by Steam, I set Steam to run in Offline Mode, to reduce the chance of something going wrong when I rename executables.
Cheers!