A router & maybe a switch or two (depending on how many ports are on the router) and lots of ethernet cables will be needed to get packets moving. A print server (I use a Trendnet TE100 to link my non-network-capable printer into my home network) or a network-capable printer would also be easier than "everybody email Bob because he's the only one with a printer."
Yes, you'll want a server to store files centrally. Probably the easiest way to force employees to store everything on the server instead of hoping they remember to drop copies on the server (which you will want to backup daily, so have a spare hard disk or two, in which case they can alternate being local/remote nightly) is to make their home folders be mounted over NFS, which would mean configuring /etc/fstab on each and setting their UID/GID in /etc/passwd & /etc/group to match their NFS UID.
If you want centralised login (which would let you have 1 user/pass for each employee -- handy if you want to be able to login to any computer, a VPN, email, or whatever other network services you'll be running internally), look at LDAP
https://help.ubuntu.com/community/AutofsLDAP
If you want to be able to force update installation and go around adding software to them all, you'll want to install openssh-server on each system to let you ssh in. There are a few ways to send the same command to lots of systems, particularly in the clustering arena. I use Terminator for my terminal emulator, so I'd find it easy to just open ssh connections to all of them and use the "broadcast command" feature.