Let's face it: until modern times, wars were fought between nations, with civilians as targets--witness the British firebombing of Dresden. The Geneva convention tried to change things, so that wars would be fought only between armies. But both sides have to follow the Geneva rules in order for them to work. Here, Hezbollah is not just a bunch of soldiers but a group which most civilians in southern Lebanon are a part of. (The say, "we are all Hezbollah.") This pseudo-nation state, as a whole, attacked Israel. They attacked civilians, and refused to have the Hezbollah fighters be separate from civilians. In order to win, Israel had to attack the entire southern Lebanon. It had to beat the Hezbollah civilians as well as the military, because that was the only way to win. Should Israel simply keel over and die just because of the Geneva rules? No country in the world if attacked on its home front would refuse to respond just because of a fear of violating the Geneva rules.
U.S. says working on initiative to de-escalate Syria fighting, with focus on Aleppo (Reuters)
from the article: Amnesty: Israel committed war crimes in Lebanon campaign