I've used the following xmodmap script for years to swap my Left Ctrl and Caps Lock keys in Linux:
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
It's also worked in my Windows 8 VM, running in VirtualBox, just fine until recently. Now, the remapping no longer applies to the Windows host - I think it started with the release of VirtualBox 4.3.16. When I try to use the regular Left Ctrl, it triggers Caps Lock in the Linux host.