I am fairly new to using any of these servers, so it will really help in knowing what specific features are most optimized of any of these three webservers.
And in what scenarios should I choose one over the other?
I tend to use something for what it is made for. While Nginx and Lighty can handle load-balancing and caching, they are primarily made to be fast and small web-servers. So, I would use Varnish as a load-balancer and caching front-end and either Nginx or Lighty as the web-server backend.
This comparison of the performances of Varnish vs Nginx vs Lighttpd can help understand what you need.
Varnish seems to be useful only in those cases where you have a huge number of cached dynamic outputs - and even here, it is not clear at which threshold it would start to work faster than plain old Web servers.
For serving anything else, including a large collection of static files, look at the benchmarks above to make your choice.