This is probably not the "best practice" but it's what I'm doing lately to migrate files between servers, desktops, etc. MS has a tool that uses DFS to migrate data and maintain UNC paths, but, whenever I see systems that map paths to physical data on Windows, I worry.
I've been using Offline Files on and off for a the better part of a decade, and it always seems to break. So, while DFS might be a different technology, the fact it's an MS tool kind of makes me worry. Sorry MS. (A technet thread about this that makes me worry.)
The tools I'm using lately are NTBackup, WinMerge, and TeraCopy.
NTBackup is the old semi-reliable. For whatever reason, it doesn't always back up all the files. Sometimes, it's awesome, but sometimes, the report says files have been skipped. A little fancy text editing can munge the logs into a .bks selection file, and you can then force more backups.... but what the heck right? Still, NTBackup works and is easier to deal with than TeraCopy. It restores file permissions and owners, which are pretty important to me. You can also choose to restore a subset of file, or restore different branches of your file tree to different locations, or restore two different backups into one location. Overall, it's a little more manageable than dragging files around.
To restore onto Server 2012 or Server 2008 R2, you need to install a special version of NTBackup Restore, a tool that won't make backups :) NT Backup Restore Utility for Windows 7 and for Windows Server 2008 R2
TeraCopy is a Windows Explorer plugin that replaces the file copy feature with a better file copy feature. The best feature is that it'll skip over errors. It maintains a list of files copied, and what's failed. For medium sized copies, it's really useful.
WinMerge is a free tool that compares two directories full of files, and reports on the differences. The best part is that it can do a byte-by-byte comparison, so files with different modification dates, but identical contents, won't get flagged. This is useful because...
Using the Restore tool, I found an annoying bug. I made a backup during daylight savings time, and restored it after the clocks moved forward an hour. The file modification dates were off by one hour. This required me to use WinMerge's tools.
Two other tools that need mention are XCOPY and XXCOPY. I'd tend to resort to those for more complex copy operations, and also for scripted operations for small sets of files.
So, first, I made a big backup, and scheduled incrementals. This was my starting point, and it took a couple days to complete the backup.
Then, I restored the files to the new server.
Originally, my intent was to restore incrementals on top of the restored files. Unfortunately, NTBackup's management of incremental restores isn't flexible enough to do what I needed. So I turned to WinMerge.
With WinMerge, I'd do a comparison of the original folder, and the new folder. Any differences were copied over, until the folders were identical. Then, I would shut down the old share on the old server, and enable the new share on the new server, and alter login scripts to map the drive letters to the new share.
(One of the side benefits of using WinMerge is that you get to test the restore - if the data isn't identical, the tool tells you.)
This operation takes anywhere from a couple minutes to several hours, and has to be done while the users aren't using the share. So you might want to rename the shares first if you can't find the time.
Overall, this is pretty labor-intensive, but if you're lucky enough to have a sub-terabyte file server to manage, these tools will allow for manual migration, and due to the tools being used, there are multiple consistency checks being run across the data.