SO, let's describe the problem:
I had to boot my laptop today, booted up and noticed the time had gone back by 1 hour on my desktop taskbar.
I assumed it was some NTP problem and ignored it.
After another stop/start of my server, I noticed the time had gone back yet another hour - and so was 2 hours out of sync.

So I started investigating by setting my BIOS time to the local time (UTC+1, which is BST).
I then booted into single-user mode, to make sure there was no network or strange service interference.

So, I check my timezone data:
# md5sum /etc/local* /usr/share/zoneinfo/GB*
All output's return the SAME checksum - so the files are identical.

So, it seems like hwclock is doing something strange with the timezone, thinking the time it's getting is local-time, then trying to set the date with the UTC time (but without specifying it's UTC time).

After running a quick strace on the command I've seen it touches /etc/adjtime (I haven't any knowledge on that file yet) so I will start investigating that.

... But, "hwclock -s" set's the time correctly - directly from the BIOS.

... Can anyone offer words of wisdom?
There isn't a BIOS option for UTC that I can see.