Modifier key settings not sticking
Try uninstalling any keyboard or pointing device drivers. Or delete ~/Library/Preferences/ByHost/.GlobalPreferences.*.plist and restart.

You can also use PCKeyboardHack to remap caps lock. Other modifier keys can be remapped with KeyRemap4MacBook:

&lt;?xml version="1.0"?&gt;
&lt;root&gt;
  &lt;!-- &lt;devicevendordef&gt;
    &lt;vendorname&gt;KINESIS&lt;/vendorname&gt;
    &lt;vendorid&gt;0x05f3&lt;/vendorid&gt;
  &lt;/devicevendordef&gt;
  &lt;deviceproductdef&gt;
    &lt;productname&gt;ADVANTAGE&lt;/productname&gt;
    &lt;productid&gt;0x0007&lt;/productid&gt;
  &lt;/deviceproductdef&gt; --&gt;
  &lt;item&gt;
    &lt;name&gt;swap_command_and_control&lt;/name&gt;
    &lt;identifier&gt;swap_command_and_control&lt;/identifier&gt;
    &lt;!-- &lt;device_only&gt;DeviceVendor::KINESIS, DeviceProduct::ADVANTAGE&lt;/device_only&gt; --&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::COMMAND_L, KeyCode::CONTROL_L&lt;/autogen&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::COMMAND_R, KeyCode::CONTROL_L&lt;/autogen&gt;
    &lt;autogen&gt;__KeyToKey__ KeyCode::CONTROL_L, KeyCode::COMMAND_L&lt;/autogen&gt;
  &lt;/item&gt;
&lt;/root&gt;


Related questions:


Logging out and in resets modifier keys to defaults
Permanently swapping option and command keys on a non-Apple keyboard
How do I make Mac OS X remember "Modifier Keys" remappings for my external keyboard?