Если у вас есть несколько файлов для развертывания вместе с вашим exe-файлом, dll для регистрации, ассоциации файлов для настройки, тогда установщик - это отличный способ обеспечить все это надежным способом. Если вы не сделаете этого с установщиком, пользователь может легко все испортить.
Кроме того, установщик иногда используется как средство обеспечения того, чтобы компьютер действительно был готов к применению. Например, написанные мной установщики проверяют правильность установленной версии .NET и загружают и устанавливают ее при необходимости.
Однако во многих случаях эти характеристики просто не стоят того, и развертывание автономного приложения в одном exe-файле вполне приемлемо. Простые приложения, которым не нужно хранить много настроек на вашем компьютере и не имеют много предварительных условий, являются прекрасными примерами. Первое, что приходит на ум, это все утилиты от Sysinternals .