Normally Visual Studio will use paths relative to the .sln file, which is represented with the $SolutionDir variable. That directory is generally the root of the project which can be moved freely to any path and is cloned to other machines through version control.
If you look in the project files typically the files are all relative to that directory. Sub-projects use the solution directory, and that means if you copy a sub-project into a new solution it will automatically use their values in the new solution file. Many tools use this to their advantage to allow per-solution configurations as they are used in many different applications.
Visual Studio's tools take steps to ensure the paths are relative, but it is still possible for you to use hard-coded paths or paths based on other elements, such as paths based on environment variables (e.g. environment variable of TOOL_SDK_PATH).
I'd look through your solution files, project files, property sheets, and similar configuration files to find any paths that are not relative. Then use the IDE itself to remove those paths and re-add them, verifying that it is using a path relative to the solution directory. If for some reason the tools won't make it relative to the solution's root, I'd edit that by hand being careful to verify the tools still recognize the correct path.