For routine sharing of files and printers, Microsoft networking with Windows 95, 98 or Me is adequate for the task. A workgroup is fine -- a domain is not needed. If you need to keep some files private, a dual-boot to one or more of the following operating systems is in order: Windows-NT4, Windows-2000 or linux.

I am of the opinion however that linux should be considered the first choice for Internet connection sharing. Grant it, Microsoft allows you to do this with their products (Windows 98 2nd edition, Windows-Me, and Windows-2000), but does not offer basic firewall protection through packet filtering that linux does. Yes you can block ports and whatnot with Windows-2000, but that is not what is really needed. What is really needed is exactly what linux offers -- the ability to reject packets that are not a reply to yours.

If you can leave a server up full time then I think Linux would be a clear first choice -- you can let it do not only the internet connection sharing and firewall protection, but also let it host a printer, sendmail program, and if you really want to get fancy and know what you are doing, let it do DNS-caching as well.

If you're going to shut your machines down, then it's not such a clear choice -- I'll give you an example of what my home situation is: I like to use the internet a lot and occasionally like to use Microsoft applications to print, etc. I have a partner who likes to play games and use internet applications requiring a Microsoft connection. My partner's computer doubles as a TV, as it has a video capture card. My partner MUST therefore use Windows-98, despite frequent complaints about crashing. I, on the other hand use the internet primarily to gather information. A linux connection is fine with me. NOW HERE'S THE PROBLEM -- The Windows machine can only take one network card, and it has to be an old ISA NE-2000 type. Otherwise the video card refuses to operate. The internet connection is DSL, requiring a port out to the network card. Therefore the Windows PC cannot share this connection. It can only be either directly connected or be a client. On the other hand, I have 2 cards in my machine. I cannot leave it up full time as a server, though, and I switch operating systems from time to time. But I've found that the internet sharing works best under linux. So when BOTH of us need to be on the internet at the same time, I use linux, and share this connection with my partner who uses Windows. When my partner uses the internet alone, the connection from the DSL modem to the Windows-only computer is direct, and I'm disconnected from it and can boot to whatever OS I feel like (there are still a few DOS/Windows games I like from time to time). When I tried to share the connection with Windows-2000, I found out that many sites timed out on the client computer but not on the host. If I use Windows-98 to share the connection, then I would disconnect the client every time my machine crashes. So, even if the sharing computer doubles as a workstation, a strong case can still be made for the use of linux over Windows.