I live in Girvan, Scotland. For a while my phone reported that it was in Langholm which is in the Scottish Borders, some 100+ miles away. Then yesterday it decided that I was actually in Kingston, Jamaica! I Wish!!!
The problem started for me when I used location based reminders for the first time. When I returned home from work my phone told me it was 2pm, though it was 7pm. I deleted all of my location based reminders and it went back to the correct timezone. "Great" thinks I. Until this morning. Alarm set for 7am didn't go off, phone thought it was 2am.
Going into Settings>General>Date & Time and switching off Set Automatically fixes the time issue. It does NOT however, make FindMyiPhone work. Or Facebook (I'm NOT in Jamaica friends!), or Run Keeper (I'm NOT running in Jamaica!) iPhone 4S with 5.0.1 installed. Oh, and wife's iphone 4S with 5.0.1 has the EXACT same problem so it's definitely software related.
And we're both Vodafone, not O2 as others with this problem reported so I doubt it's a network issue.