For completism's sake, the list is in program/include/main.inc in the stable release (line 1524) and in a different file in the SVN version.
I had to hack it, but now my messages are going out as I require. I had to move my required charset to the top of the array that produces the list and remove UTF-8 all together. That way the list defaults to what I want. UTF-8 must be set as 'selected' elsewhere, as it's the default always, unless you remove it... It works, but I feel that's rather a messy workaround. I'd rather still have the option for UTF-8 in there too.
Maybe a parameter for the default in the main.inc config file would be good ...