There are several 3rd party free TFTP servers for Windows out there, but why use a 3rd party product when you already have a free TFTP server on the install CD? Lets roll!
First, grab the Windows Server 2003 resource kit, and install it.
Now open a shell and go to your I386 directory (CD or distribution share - doesn't matter).
Run expand tftpd.ex_ %systemroot%\tftpd.exe. Note you could place the .exe elsewhere if you like.
Still in the shell, change to the Windows 2003 reskit install directory and run instsrv tftpd %systemroot%\tftpd.exe.
Create a TFTP root directory. It can be anywhere and named anything. For example, D:\TFTProot.
Run the following commands to create / modify the appropriate registry values
reg add hklm\system\currentcontrolset\services\tftpd /v DisplayName /t REG_SZ /d "TFTP Server"
reg add hklm\system\currentcontrolset\services\tftpd\Parameters
reg add hklm\system\currentcontrolset\services\tftpd\Parameters /v Directory /t REG_SZ /d d:\tftproot
And finally, do a net start tftpd
And that's it. Of course it would be a good idea to set the appropriate NTFS permissions on the TFTP root directory, and run the service with a low privileged account.
Why am I doing this? I'm looking to take the 'PE from HDD to RAM' to the next level, which is booting PE via PXE :-)