For windows to linux file and print you need to set up samba and cups, for linux to linux you need nfs and cups.

I don't have any windows boxes on my network but I do have an NFS server (also serving my printer and flatbed scanner over the network). The /home directory on the server is mounted at boot on my main workstation with the following entry in /etc/fstab,
[code:1:ccced4e6c4]
aptiva:/home /mnt/aptiva nfs users,rw 0 0
[/code:1:ccced4e6c4]
This is the /etc/exports entry on the server, directory to be shared is /home, shared with 192.168.0.2(options)
[code:1:ccced4e6c4]
/home 192.168.0.2(rw,no_root_squash)
[/code:1:ccced4e6c4]
This is my /etc/hosts,
[code:1:ccced4e6c4]
127.0.0.1 localhost
192.168.0.1 aptiva
192.168.0.2 grendel
[/code:1:ccced4e6c4]
The printer is shared with cups and the scanner is shared with sand.
Like most things linux it looks quite daunting when you first approach it, but once you've worked out how it goes together you can setup a fully functional (and secure) home network in 1/2 an hour with only a text editor.