I used to pride myself on being able to run through menu selections and configuration options from memory. There have been times when I could describe over the phone the process for using a GUI. I've been able to direct people to log onto SQL Server, choose a database, right click it, and choose restore. Then select device, choose NORECOVERY, etc, etc. I could walk people through many Windows dialogs, IIS configurations, and more, with verbal commands, picturing what they would see on the screen as I was holding my phone to my ear.
People would be impressed, and I'd rarely make mistakes. I knew what was coming next, and where to click. However I did make mistakes at times, and while that's human, that's not what we want during software configurations. These days we find plenty of administrators and developers running an install program, and either selecting options from memory or using some sort of document that was given to them. The thing that concerns me is that any of those processes could be full of mistakes. Documents never get rev'ed to keep up with changes. Human memory is faulty, and certainly we find ourselves clicking the wrong button at times.
When we install, or deploy, software in this manner, we're asking for problems. Not every time, but if we manually configure, click, or select anything, then we are building individual works of art. That's not what we want from our software environments. We want to know that the production environment is configured the same way every time, and if we need to recreate it in a DR situation, we can. We want confidence that the software that was tested in the QA environment will work correctly in production, which means we know that the states of the system are the same. We might even want to be sure that we've configured our development environments the same as production.
As our tools get better, especially around virtualized systems, there isn't a good excuse for not automating our installation and configuration through some sort of scripting. These days there ought to be no reason for a Windows, SQL Server, IIS, and most other platforms to not be easily scripted and deployed in a hands-free fashion. That's one of the keys to engineering software at scale instead of sculpting it one system at a time.