Вместо использования ярлыка вы можете создать командный файл, который использует относительный корневой путь к исполняемому файлу.
например, для вашего примера
@start "" "\ Portable Applications \ Program Data \ CCleaner \ ccleaner.exe"
Пакетный файл должен работать с любого места на USB-накопителе, независимо от буквы диска.