The function had to be written for an ASP.NET server and ideally in VBScript to fit in with the rest of the project. To further complicate matters it was a hybrid project... a halfway house in a migration from Classic ASP to dot Net.
I did the usual trawl around Google looking for code fragments to base the function on and to my surprise almost every one of them ended up producing either terrible quality thumbnails (relying on the .net GetThumbnailImage function) or huge filesizes. It was only as a result of a lot more diligent searching that I was able to solve the latter problem and so I thought I'd share it.
You can either click to go to a working sample, with source online and in a zip file or just grab the source from here and play....
1: <%@ Page Trace="False" Language="vb" aspcompat="false" debug="true" validateRequest="false"%>