I'll give you an example for one of the schools I work for.
All of our HP Proliant G3s and G4s, racks and towers, have 2 NICs in them. All of them are running Windows Server 2003 Enterprise Edition. Since they came from HP, which I recommend for any of you that plan on setting up corporate/business level servers, all come equipped with a lot of system utilities that are designed for HP servers. One of those utilities, the [SIZE=-1]HP Network Config Utility[/SIZE], allows you to team two or more network adapters together for load balancing. You can setup transmit load balancing, which load balances all the transmit traffic from the server, or you can set up receive load balancing, which load balances all the receiving traffic to the server. All of this is graphical, so it makes things a lot easier when you set it up. However, I have found it to create junk records in DNS for the teamed server during the initial setup, but all that is required is to delete the records once the setup is complete. It's just something to watch out
.
Windows Server 2003 also has it's own load balancing utility called the Network Load Balancing Manager, however the name can be deceiving. It is intended for use in clusters, not balancing a single machine because it really wasn't designed for that. Unfortunately, this tool is not available in XP, only server systems.
*NIX based systems also have a lot of load balancing tools out there, so a simple Google search will bring those up.
In most of the data centers that I have worked in, we load balance the actual network. One example of this is using the hybrid-mesh topology. It's used to create redundant links between a few, but not all nodes on the network. I have done this with switches and enterprise level routers. However, in order for this to work correctly, you have to purchase network equipment with this functionality built in. In addition to load balancing the nodes, the hybrid-mesh topology allows for redundant links just in case one of them goes down for some reason...