Farmers getting public grants should be forced to capture water on their land to prevent floods downstream, environmentalists say.