I use Carbon Copy Cloner for most all drive copying.

Typically I boot the machine in Target mode then clone using another running system to assure no data is in use on the source drive.

Also on any computer I service, Mac and PC, I always setup an additional user account with full administrative rights. This not only lets me troubleshoot a user account by logging in differently but allows checking default values (Dock, Finder etc.) against those which may have been customized. As mentioned, a new drive should be properly partitioned and formatted before cloning is attempted. For peace of mind, keep the old drive intact for at least a week or so after cloning and new drive installation, just in case a malfunction occurs. This form of backup can be a lifesaver.

So far as Windows installations, it depends on whether you are running virtually or natively. Virtual machines (VMware, Virtual Box, Parallels etc.) will usually copy fine, because they are sets of files in OS X. Boot Camp and similar native installations utilize separate dedicated partitions, which some programs may not be able to clone, due to NTFS formatting.

Best of luck to you.