This is an answer to the title question, which is probably obvious to some but which took me a while to realise. I had set up a virtual extension which was meant to go straight to voicemail. After creation it was in the state described in the first post, 'enabled', but not 'activated'. Thus I was unable to load greetings, or at least that was my experience.
By calling the extension and waiting for voicemail and leaving a message, I then activated the voicemail, and could do the rest.
Like I say, probably blindingly obvious to the rest of you, but all I could find on the web were requirements to dial in as the user, which didn't help ... how do you dial in as a virtual extension?
ps. that's a rhetorical question. The point is that there is a simple way to activate the voicemail without needing to know ...