In order to speed up booting and avoid unnecessary hog on resources, Windows 7 gave us possibility of running services only when some preconditions are being met. Currently those preconditions include change of IP address, joining a domain, firewall changes, USB device insertion and few others.
This is great for services that need to perform some action when that precondition is met and spend most of time waiting (e.g. update some settings on IP change).
Currently there is no graphical interface to view/change settings so everything needs to be set through application’s code (or command-line). Since service (and it’s installer) are in best position to know when activation is needed, I do not find this a big limitation. Those programming in .NET will need some P/Interop in order to use it.
You can check this video for more details.