Restaurants and places that serve food aren't actually required by law to give free water, only places which hold a license to serve alcohol on the premises. If they refuse there is a fine of up to £5,000 for the duty manager at the time (yes a personal fine!).