Basically, Joel said that letting Windows take care of load balancing is better than using a hardware load balancer, because if your load balancer goes down, you’re offline. I would tend to agree. John said that that’s baloney, because if you have a load balancer, you have two of them.
But for a small shop, two load balancers is expensive, and doesn’t actually add any benefit over letting Windows do it.
ASP.NET gives you various ways to manage session state, including serializing state into the database, so even if one of your machines goes down, a client in the middle of something that requires server side state doesn’t lose anything.
Doing the load balancing is a little more work for the servers, but peanuts in the grand scheme of things. Joel’s got a system that works, and saved himself the $$ of two hardware load balancers. Makes sense to me.