Microsoft's User State Migration Tool does have limitations.
- Migrate EFS files and certificates (use "/efs:copyraw" in the Scanstate command).
- Save profile data -- My Documents, My Pictures, etc. in Windows XP and Shared Documents and Shared Favorites in Windows 7 and Vista -- for all local users as well as the "all users" profile.
- Define file types defined in Miguser.xml (can be modified). *
- Migrate access control lists (ACLs) with the files and folders.
- Migrate operating system data such as group membership, Vista taskbar settings (not XP), mouse and keyboard settings, and more. *
- Migrate application settings for certain apps. *
- Migrate data from local USB drives (but not data from USB flash drives).
- Allow scripting and customization of the XML input templates that are provided, including generating Exclude lists.
- Perform offline migration for some settings.
- Migrate computer settings.
- Migrate local users to local users on the new machine.
- Migrate a local user to a domain user (in a domain configuration).
- Migrate a domain user to a new domain.
- Allow user interaction during the migration.
- Migrate applications (though it will migrate application settings for supported apps). *
- Migrate applications to a new version (source and destination must be the same except for Microsoft Office).
- Migrate application settings not modified by the user.
- Migrate operating system settings such as local printers, hardware settings, permissions for shared folders, files and settings between different-language versions of Windows, as well as network printers and some firewall settings from XP.*
* Note: These are a few of the highlights, but for a complete list of settings, restrictions, applications and file types, see the "What does USMT migrate?" section in the USMT User's Guide.
Check out the full article on USMT by Gary Olsen.