|How do I go about setting this up.|
See my responses to your requirements below:
1) Use a SOHO Router rather than a computer for handling the internet connectivity for your LAN. If you use a SOHO Router it will provide you with a firewall and allow you to do NAT and DHCP for the LAN on it, thus removing those services from a server (it's always a good idea to keep the number of serivces running on any server to the least number possible)
2) They make print server devices which again, would free up more server resources for other things. Printing can, and does use a fair bit of resources. If you have an old clunker of a PC kicking around, you could even make it your print server rather than running it on an actual server that will be providing other, more important, services to your LAN. Definitely have a look at print server devices before deciding. Some of them are fairly inexpensive and do a good job.
3) this and file sharing should be the only things your server is doing
4) Again, this could be done elsewhere other than on your server. My wife works from a home based office and her company has provided her with fax. It's through an online fax company. You send her a fax to a telephone number, she gets it in .pdf format via email. I would look into something like this, or a regular old fashioned fax machine as again, and I can't stress this enough, you want to keep the load on the server down as much as possible so it can put as much of it's (finite) resources towards the job you really intend it for.
What do I need (OS, softwares, etc)
I would recommend a server software (Windows 2003/2008 or Linux/UNIX if you're familiar with them) but if you have a limited budget, you could do probably do it with a Windows 7 box. Certainly the file sharing, I suspect you could do the network software too but without testing it, I coudln't say for sure.
How do I secure the internet and distribute it to the rest. (switch, router, etc)
As I said above, a SOHO Router should be between your LAN and the internet. In light of the fact that you have 25 clients and are going to add a server, I would get a 48 port unmanaged switch. You would connect them as follows:
Internet >> SOHO Router >> Switch >> Server/Clients
It matters not how straight the gate,
How charged with punishments the scroll,
I am the master of my fate;
I am the captain of my soul.