Lots of pubs have got a bit greedy in my view.
Yes, there are some which really are gastro-pubs with fantastic food - and you expect to pay for that. However, lots of pretty average pubs, with average menus and quality food are charging around the £20 mark for main courses. It seems a lot.
If I was paying £20+ for a Main in a pub, it would have to be a special occasion or a special pub. if I was just going out for an average night out, I'd be checking the menu and prices in advance and hoping for a main, more in the region of £10-12 and probably having 2 courses max, and a drink, making it around £20 per head.
Depends on what you're used to though doesn't it. There are pubs which you see signs outside for offering 2 main meals for £8.50 or pubs which do a main meal and drink deal for about £5. There are lots of chain restaurants which do 2-for-1 vouchers almost all of the time - but these aren't offering home prepared and cooked food, but often microwaved or part-prepared in advance food.
I suppose the key is to check in advance, what the menu and prices are like and only go to places which fit the amount you are willing to pay. Some people will be happy with Wetherspoons, but other people want fine dining.