I didn't mind it back then. Considering the servers and workstations were completely dedicated to a single application, managing them was very straightforward. What was far worse, was teaching incredibly impatient traders - with hundreds of thousands on the line at any given moment - how to use a mouse, as more recent versions of our software became their initial introduction to Windows.
I worked with DOS as recently as 6 years ago. It's actually not all that bad, assuming you've got them on a network. We had a Novell server and they all mounted a network share on that at boot. From there, backups (and restores) were just a simple xcopy script. I ran a script to create 'flag' files to trigger the backup on reboot and the machines were shut down every night, so it was quite simple to manage.
I was able to deploy updates via a similar mechanism. There was a network script called from autoexec.bat. I would make a few changes to have it pull in the new updates from the network, then tell them to reboot at their convenience. So I almost never had to leave my desk to deal with them, except for a restore from backup.
How did one do network programming in dos? Did it have a tcp/ip stack and winsock.h funtions or equivalent? And threading? Did you use Djgpp? I've always wondered about that.
Edit: browsed the DJGPP website and found answers, there are libs available.
DOS games tended to roll their own protocol on top of the raw packet drivers. This is why they were often LAN-only. Generally in the DOS era you didn't have Internet; it existed, but wasn't widely deployed.
We didn't do anything like network programming where I worked. We just copied files on and off of network shares with batch files or such and let the Novell drivers handle the network.
So you'd download the day's schedule or updates by copying the file off the network and use a few primitive means of coordinating things like using 'flag' files for signaling and then if exists xxx / echo foo > do_bckup.txt type things in your batch files.
It's very primitive, but most things were at least doable and you could always write small programs to extend your scripts if need be.