At work, I do dispense food bank vouchers and work with people who need them. Here are the causes that I see that have very little to do with your guesses above:
People have rents higher than their incomes allow - £50 a month more than housing benefit is impossible to find form a minimum income...