1.Обычно при установке программе можно указать куда ее ставить.
2.Многие программы не переживут переустановку ОС, даже если будут установлены на другой диск, все равно потребуется переустановка программы.
Узнать это о программе можно так: установить ее штатно; скопировать каталог с программой в другое место; удалить программу штатно; попробовать запустить программу из скопированного места. Если программа заработает, то скорее всего она переживет и переустановку ОС, если нет - не переживет и переносить ее в другое место бесполезно. Кстати нужно проверять не только запуск но и функционал программы, бывает что программа запускается, но какой-то функционал отваливается и при попытки вызова функций появляется ошибка.
3.Перенесите профиль пользователя на другой диск. Вот
тут я уже описывал этот процесс. Вместе с профилем перенесется и AppData пользователя и %TEMP% и профили браузеров и т.п., которые отъедают изрядно дискового пространства.
4.ProgramData - не трогайте. Это профиль "All users" или "Public" - там полно символических ссылок и если его начать переносить может отвалится много чего, т.к. символические ссылки при переносе испортятся. Теоретически все ссылки можно восстановить (или перенести скриптом), но полноценной автоматической реализации этого процесса я не встречал, а руками - это займет много времени.
5.Использовать какие-то дополнительные инструменты для чистки реестра и удаления программ, имхо, не имеет смысла. Винда нормально с этим справляется сама. Так же в Вин7 и выше есть довольно мощный мастер очистки, который много чего умеет.