Certain applications are hardcoded to write certain files\folders to shared portions of the operating system (%ProgramFiles% or %ProgramData%). This can present issues, for example when running RDS or Citrix if the files pertain settings\data that need to be unique to each user.

Since Windows 2000, Microsoft supports so called junction points. NTFS junction point is NTFS functionality that allows you to seamlessly redirect one folder into another.

Since Windows Vista\2008, full symlinks were introduced. While junction points can only link to directories on a local volume, symlinks are much more powerful and actually supports all 4 R(emote) and L(ocal) scenarios – L2L, L2R, R2R and R2L. Another great benefit of symlinks is that you can use it to redirect files (and not only folders). So if you need to only direct a single file, you don’t have to redirect the whole folder.

Here is a link to the technet article explaining the available options available with the MKLINK command: http://technet.microsoft.com/en-us/library/cc753194.aspx