Samba can do both (fileshare and network printing). I don't know which distro you're using but you can either go the www.samba.org
and download the source and install it or get one of your distro-specific packages and install it that way. If you use debian it's as simple as "apt-get install samba smbfs". Then follow the instructions on samba.org or www.tldp.org
to setup. It can be a little tough (especially getting windows to access linux) but a good exercise.