Question: I've been developing in Eclipse and every now and then I come across having to add JARs to WEB-INF\lib. My question is why sometimes I need to add them to the build path and sometimes I can just dump them in there.

Answer: 
If you need them at compile time, they need to be in the build path. If you only need them at runtime, adding them to WEB-INF\lib is sufficient.
Well... I never encounter such problem with Eclipse. Let me ask you some questions:

1. Are you using Eclipse JEE edition?
2. Are you using Dynamic Web Project?

If you answer yes to both of them then you should get the jar on the build path automatically once you drop the jars in the WEB-INF\lib (maybe you need to refresh the project in Eclipse as well). Dynamic Web Project will automatically add all jars in the directory to the build path of the project.

If you still get problem then I think there is a problem with your Eclipse or your configuration.

From here (http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.wst.webtools.doc.user/topics/ccwebprj.html): 

> 
> /lib
> 
> 
> The supporting JAR files that your Web application references. **Any classes in .jar files placed in this directory will be available for your Web application**
> 
> 
>