Phew, I got it!!! Basically I rebuilt the entire form, step by tedious little step. While I don't know exactly what was stopping it from working, i suspect it may have been caused by the following attributes set on buttons in other parts of the form:
PostbackUrl = ".."
Adding that back in to my working form causes the updatePanel to break.. but removing it from my original broken form does not fix it, so perhaps there was something else in there too.
No code was changed, so it wasn't anything to do with sequencing of events etc (good idea though TheGeekYouNeed.
This was a project updated from Asp.Net 2.0 to 4.0 .. perhaps something in the upgrade messed it up. Who knows, anyway at least it's fixed. PHEW!