Other factors to add to the mix:
1. Turnout, not just how many voted but how many of a party's core voters went to the polls.
2. Who the media endorsed, particularly the tabloids.
3. The implications of an EU referendum, irrespective of the outcome, were downplayed. So much for learning the lessons of the implications of Scotland's referendum, irrespective of the outcome.
4. Late swings were likely influenced by polls themselves being published.
5. First-time voters voting or not.
But much can also come down to the weather or sporting results in terms of how people are feeling that day or that week. Did Cameron's response to Nepal's earthquake make him appear to be more Prime Ministerial or not? So many constituencies were won by small percentages and Labour appears to have increased their overall vote percentage more than the Tories increased theirs. When Clegg can still win his seat and the Tories can still win a seat in Scotland, a butterfly flapping its wings in Brazil can cause a political tornado in Skegness.
Ilan
London didn't shift to the right as much as the rest of England - and UKIP did very poorly there! (And the working class is not being squeezed out of London)
The pollsters who designed the exit poll got it right
Possible reasons
1. 'Spiral of silence' - Conservative supporters more likely to 'lie' in polls
2. Many undecideds till very late and majority went to the right
3. Very late swings - as in 1992
4. The fear factor - especially Cameron's 'Vote Labour get the SNP'
More?