When we first setup our home network we needed a firewall to do NAT for the network (to allow everyone to access the internet without having to pay our ISP more money). Back at the time NAT was still kind of new and was generally a pain to get working just right (but at least then hadn't come up with PPPoE yet). So in went the standard LINUX firewall that we had no idea how to setup or look after. Several times over the next year routine upgrades to the system broke things resulting in much spending of time standing in front of the filing cabinet in the storage room which had the firewall computer on top of it. Yep - the keyboard was about 5 feet off the ground. Can you say comfortable.
So then Microsoft come up with this concept of Internet Connection Sharing (ICS). Out goes the linux box. In goes a windows machine running ICS and everyone is happy for a couple of years. I know, I know, what were we thinking...
Well we finally came to our senses and ditched the Windows box and put back a LINUX box. This time though things had made some good progress in the LINUX world. No more ipchains, hello iptables. NAT was now much easier to setup and general system updates didn't tend to require a degree in linxology.
At this point we are still running LINUX (Debian) quite happily. It keeps the bad guys out and lets our growing hoard of machines on our home network speak to the rest of the world in a controlled manner. Still not the most comfortable of working environments but at least it doesn't break as often now. We are planning to turn this into a nice rack mount setup when we renovate the basement one day. But for now it does the trick and stays nice and cool.