Crossover won't work in an account that has been moved using the Migration Assistant
Migration Assistant has a weird habit of creating your home folder such that your user account is not its owner. Instead, it is owned by root and permissions are set to give your user account complete access permissions. Ordinarily, this would be fine for most software, but it can sometimes cause grief for CrossOver, which digs into the low-level details of things more than most software.
To check, try this command in terminal (Applications>Utilities>Terminal):
ls -ld@e ~
The output should be something along the lines of
jack-mac:~ jack$ ls -ld@e ~
drwxr-xr-x+ 79 jack staff 2686 Dec 4 12:53 /Users/jack
0: group:everyone deny delete
However, if the owner of the account doesn't match the account name, this is problematic. To fix, try:
sudo chown -R ~
For example, for me it would be:
sudo chown -R jack ~jack
Likewise, you may own your home folder, but the owner may not be granted access permissions through the "mode" flags. Instead, your user account may be granted access permissions through an Access Control List (ACL) entry. That too would be revealed by the above "ls" command.
The fix for this would be:
chmod -R u+w ~
Or, for some reason, the HOME environment variable is not being set, or is being unset, or is being set to something other than your home folder. Unfortunately, it's no good using Terminal to check this, because a command shell has its environment created in a completely different way than a GUI app launched from the Finder or Dock.
The most likely culprit in this case would be ~/.MacOSX/environment.plist. That file, if it exists, contains key-value pairs that get translated into environment variables for your login session. Some third-party programs may edit this file in an inappropriate manner, leaving environment variables busted. Check for that file and make sure it doesn't define HOME.