There is a different issue going on here as well though.
Whilst there are people who clearly over-eat, for the rest of us - we have been given the wrong advice by our government for the last thirty years, and told to base our diet on carbohydrates. Fat has been demonised. In fact, it's carbohydrate that causes the weight gain.
We eat carbs, the blood sugar spikes, the body releases insulin. When we eat a lot of easily accessible carbs, like pasta, bread, fruit, the blood sugar spike is quick and huge, so the body pumps out loads of insulin. It sweeps the sugar out of the blood stream. Some of this blood sugar is used for immediate energy (e.g. the 'boost' you get from eating a piece of chocolate), some of it is stored in the liver and muscles for deferred energy needs - the rest is sent to the fat cells as fat.
Worse, the amount of insulin released to deal with the blood sugar spike means that blood sugar levels drop very quickly, and drop very low - making us shaky, irritable and hungry. This explains why you feel the need to eat something at 11.00 and 3.00. And what will you, typically, be eating when you're hungry at these times? More carbohydrates. Biscuits, chocolate, cake, a piece of toast ...
It's very long, but the first ten minutes should give you sufficient information.
Therefore, ultimately, gaining weight is not because people are greedy or lacking in willpower. It's the type of food that we are eating that is making us hungry - and fat.
It's time to stop demonising people and blaming weight gain on behaviour.