At work, we use SCCM to do this. You just plug the PC on the network, PXE boot, and it does its thing. You can also create a USB drive installs the same image. It then proceeds to install the third-party software via SCCM, too, so you don't need to upgrade the installation image every time a new app version is released.
One caveat is that SCCM is not free, and we have a dedicated guy managing it. Not sure how much work that entails (he's not full-time), I rarely if ever touch our Windows environment (I'm running Linux on my own machine).