A única maneira de saber tudo isso é registrar todas as alterações feitas pelo instalador no sistema e, quando o programa estiver sendo desinstalado, desfazer todas as alterações de acordo com esse registro. Tudo o mais é apenas suposição.
Este é, na verdade, o método que o programa de desinstalação de cada programa trabalha, pelo menos em teoria - há uma lista de pastas / arquivos / entradas de registro que o desinstalador remove quando executado. A prática, claro, está longe disso. Por muitas razões.
@Moab sugeriu Revo, estou usando o Desinstalador do Programa Wise.