Repository: conan-io/conan
Issue: [bug] conan 2 does not support source and build directories on different drives under Windows

### Environment details

* Operating System+version: Windows 10
* Compiler+version: Visual Studio 2022 Community
* Conan version: 2.0.0
* Python version: 3.11.2


### Steps to reproduce

I am using out-of-source build with CMake. For organizatorial reasons, I need to have my source code repositories and my active build directories on different volumes on my Windows machine. The source code repo resides on volume drive S, the build directory are created on volume drive D.

The Conan 2 generator `CMakeToolchain` does not seem to work with that scenario, as it tries to compute a relative path from the source to the build directory, which results in a Python error (see log below).

### Logs

```
conanfile.txt: Writing generators to D:\\Builds\\helloworld_conan_vs2022
conanfile.txt: Generator 'CMakeToolchain' calling 'generate()'
conanfile.txt: CMakeToolchain generated: conan_toolchain.cmake
conanfile.txt: Preset 'conan-windows-x86_64-msvc' added to CMakePresets.json. Invoke it manually using 'cmake --preset conan-windows-x86_64-msvc'
conanfile.txt: If your CMake version is not compatible with CMakePresets (<3.19) call cmake like: 'cmake <path> -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE=D:\\Builds\\helloworld_conan_vs2022\\conan_toolchain.cmake -DCMAKE_POLICY_DEFAULT_CMP0091=NEW'
conanfile.txt: CMakeToolchain generated: CMakePresets.json
conanfile.txt: ERROR: Traceback (most recent call last):
  File "C:\\Users\\sakra\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\conans\\client\\generators\\__init__.py", line 70, in write_generators
    generator.generate()
  File "C:\\Users\\sakra\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\conan\\tools\\cmake\\toolchain\\toolchain.py", line 207, in generate
    write_cmake_presets(self._conanfile, toolchain, self.generator, cache_variables,
  File "C:\\Users\\sakra\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\conan\\tools\\cmake\\presets.py", line 212, in write_cmake_presets
    _save_cmake_user_presets(conanfile, preset_path, user_presets_path, preset_prefix, data)
  File "C:\\Users\\sakra\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\conan\\tools\\cmake\\presets.py", line 256, in _save_cmake_user_presets
    relpath = os.path.relpath(user_presets_path, conanfile.generators_folder)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen ntpath>", line 754, in relpath
ValueError: path is on mount 'S:', start on mount 'D:'

ERROR: Error in generator 'CMakeToolchain': path is on mount 'S:', start on mount 'D:'
```

Changed files:
conan/tools/cmake/presets.py

diff --git a/conan/tools/cmake/presets.py b/conan/tools/cmake/presets.py
index 09c17a667..dbb55ba39 100644
--- a/conan/tools/cmake/presets.py
+++ b/conan/tools/cmake/presets.py
@@ -253,8 +253,11 @@ def _save_cmake_user_presets(conanfile, preset_path, user_presets_path, preset_p
     data = _append_user_preset_path(conanfile, data, preset_path)
 
     data = json.dumps(data, indent=4)
-    relpath = os.path.relpath(user_presets_path, conanfile.generators_folder)
-    ConanOutput(str(conanfile)).info(f"CMakeToolchain generated: {relpath}")
+    try:
+        presets_path = os.path.relpath(user_presets_path, conanfile.generators_folder)
+    except ValueError:  # in Windows this fails if in another drive
+        presets_path = user_presets_path
+    ConanOutput(str(conanfile)).info(f"CMakeToolchain generated: {presets_path}")
     save(user_presets_path, data)