You asked for something non-MS, and as someone pointed out the Small Business Server would fit the bill, unfortunately.
The best answer is that this depends on your skillsets. A Linux/FreeBSD server can do all this and much more, BUT they have a BIG investment on learning curve if you don't already have the skills.
The payoff is great once you're up and running and learn how to properly administer them. But you don't want to be learning everything from commandline to compile time on a production server. You definitely don't want to feel your way around learning to configure, maintain, and back up a server with all those services that is also accessible from an external network!
You would best be served by hiring an outside contractor/consultant local to your area to help you or grow an in-house IT department, even if it's one skilled person, to handle this (with thirty people you probably would be in need of this kind of service soon anyway if you don't already have one started). In the meantime the MS solution is well supported and there's far more people with these skills in the commercial sector than I'd care to acknowledge.
In the end...
Linux/*BSD would work great, as long as you have a knowledgeable person on staff to configure and maintain it and support your users. It would be minimal in cost except for the talent maintaining it.
Windows will work fine, there are more people that tend to maintain and be knowledgeable in that OS so they are cheaper, but you still have labor costs (if it's outside your expertise) and more licensing costs.
Either way you're going to need to invest in securing your server and having a good backup solution and invest in a good support structure for maintaining the system(s).