In Britain this was, largely (she says putting her hands over her head and waiting for the fallout) a class issue. Calling the evening meal "dinner" was part of a middle class lifestyle, along with calling the third course "pudding" and using a "napkin" not a serviette. See Jilly Cooper's "Class" for an amusing look at our class system.

In the North of England (I don't know about elsewhere) in working class families dinner was always around midday, tea was around 5pm and supper (if any) was a light snack, maybe cheese on toast, later in the evening. When my father was at school, all the children and teachers in his area came home for dinner. Many of the men worked locally and were able to come home and few of the women worked so this was the main meal of the day in many families in his local area. Over time more women worked and more children stayed behind for "school dinners".

In the North of England today there is still a mixture of usage. Pubs tend to advertise the "pub lunch" and restaurants advertise different menus for lunch and dinner. I think locally we'd tend to talk about lunch then either tea or dinner depending on the time of the meal. If we eat at 5pm it's teatime, if we eat at 8pm it's dinner. it would be hard to imagine sitting down for dinner at 6pm, say. In the South I often hear the word "Supper" used for the main family evening meal.

I was reading an article about restaurants in London being amazed by American tourists wanting to book dinner at 5/6pm when they wouldn't open for dinner until 7pm. I think eating later in the evening is more of a European thing. In Spain 9pm would be considered early!