Creating a network aware DOS is theoretically very simple. While booting into DOS load the DOS driver for the network card, and the drivers for whatever protocols you want, and make sure you have the required client software as well.
Some problems:
First, we dont know what network card the machine is going to have. But, since it is our machines, we know what are the likely network cards. In our case, we have been using Netgear FA310TX. However, now we are getting Netgear FA311. We might also want to use this on Laptops, over which we have no control. Luckily for us all the popular brands have the Intel Pro 100 network adapter. So basically, we have to support only three network adapters, as of now. Since all the boot images are going to be stored in a CD, and we will be able to choose which boot image we want to boot from, we can afford to have one image per network card, we want to support. Luckily, there are better solutions.
Start with a MSDOS boot floppy disk with network support which mounts a samba share. You can create one using the "Ghost Boot Wizard" utility which is a part of the Norton Ghost software from Symantec. This boot disk is going to support one specific network card only.
Now look at the floppy disk you have just created. You will see that the config.sys does not load any network drivers at all (Thats why I said MSDOS, in case of PCDOS, the ghost boot wizard loads network drivers in config.sys). All the network driver loading happens in the autoexec.bat, more specifically in the net initialize command. This inturn looks at the A:\net\protocol.ini file, which has a line which specifies the name of the driver to load. Then the driver A:\net\{DRIVERNAME}.DOS is loaded. Here {DRIVERNAME} is the name specified in the protocol.ini file.
To support multiple network cards, we need to run our own netsetup script at the top of autoexec.bat, which finds which network adapter is in the machine and sets up protocol.ini and the driver correctly. All network adapters have a unique vendor id and device id. The PCISCAN utility by Bart finds the vendor and device id, of the PCI devices in the machine, and uses a reference file (which you create) and sets the environment variable %PCI0% to what is specified by the reference file. So, the netsetup script justs run the PCISCAN utility and modifies the template protocol.ini to have the right driver name. Modifying can be done by using a Search and Replace utility like GSAR.
Now all that is needed is to load the CDROM driver in config.sys, and run mscdex.exe in autoexec.bat, to have access to the CDROM. Since the networking utilities use up a lot of memory, you will also have to load the EMM386.EXE and HIMEM.SYS in your config.sys. Also, dont forget to add the DOS drivers for all possible network cards to the floppy. Well, all this uses up a lot of valuable diskspace, and very soon you will see that you have used up all your 1.44MB. But we are going to boot off a CD, and floppy images on a CD can be 2.88MB as well!
Once we have a network aware DOS image, we just mount a samba share and execute a batch file which handles the windows installation. In case of a rescue disk, we have to mount the CD, and optionally a samba share, and drop to a DOS shell.
Memory problems: When you try to run the winnt.exe to install Windows, it will complain about there not being enough memory. This is because winnt.exe requires about 440K of memory to run. DOS only has access to first 640K of memory, and the network client program uses quite a bit of memory. The solution is to put in more drivers, which will allow DOS to use the extended memory. So you just have to add emm386.exe to your floppy image, and add device=emm386.exe to your config.sys. Ofcourse, this means you need more space on your floppy. This is where you will be happy that floppy images can be 2.88MB.