I've encountered VM templates distributed as an OVF with a feature so that when you boot the VM for the first time you are prompted for configuration options such as hostname, IP address, root password, etc. What is used to do that? Is it specific to a certain virtualization environment, or to a specific client OS, or something else?
It is OS specific, a Linux OS is not customized the wame way a Windows one. However some virtualization evironments provide tools to help you with it, e.g. with VMware vSphere you can create Guest OS Customizations with the vSphere Client and use it with your virtual machine templates.