There are many ways to share resources over a LAN. Your main concern will be what the client side is running since most server operating systems (especially Linux) support almost all types of clients (UNIX, Windows, MAC, Novell, etc.). You will also need to take into account the type of files you are sharing, are they simply data files, work documents, source code, network boot files, or?
tftp is used by everything from X windows terminals to Cisco routers when booting to get their initial boot files and configuration data.
NFS is the most universal method of file sharing supported by UNIX in general. Almost every UNIX OS (Linux, *BSD, Sun, etc.) supports NFS. There are also commercial NFS clients and servers for Windows. NFS is ideal for sharing out user home directories and other real time" filesystems.
rsync is the ideal method for synchronizing large amounts of data that isn't time critical (i.e. for ftp site mirroring). It uses an extremely efficient algorithm to find files that are newer (or gone), and then retrieves them, it also has several nice security features.
lpd is the age-old line printer daemons (when all you ever printed was text) which allows for the usage and sharing of printers.
Common UNIX Printing System (CUPS), is GPL licensed and version 1.0 just came out. CUPS is available from: http://www.cups.org/.
SMB (server message block) is the current windows file sharing protocol. Samba does an incredible job of providing all the services required to properly share windows files (such as Primary and Backup Domain Controller services). You can also provide windows access to printers through Samba.
An advanced network filesystem, not very fun to implement. http://www.coda.cs.cmu.edu/.
An https-based system for sharing files among machines securely. http://www.edlund.org/projects/drall/index.html.
A high end, commercial file sharing application for large installations. The FAQ is available at: http://www.angelfire.com/hi/plutonic/afs-faq.html. A free AFS client implementation for a variety of unices (including Linux of course) is available from: http://www.stacken.kth.se/projekt/arla/.
CVS is used to centrally maintain source code in a repository, and to allow people to make modifications, with an emphasis on the ability to roll back changes, get an old "snapshot" and so on. It is very popular for large software projects.
Written by Kurt Seifried