You need to get the best of both worlds.
We had a base 'CSGraphics' class that when initialised creates either a 'CSGraphics11' or a 'CSGraphics14'. the 11 used software rendering, the 14 used buffered images and simply forwarded the draw calls onto the normal Graphics object. The Sprite was wrapped up in the same way as a 'CSSprite', as was BufferStrategy and the Audio - although the audio is a bit buggy at the moment - 1.1 audio sucks bad!

(...snip...)
And you do need the -target 1.1 too

Thanks a million!! Those tips did the trick! My game now runs in both 1.4.2 and MS 1.1!!

Although I did hit a couple of other "gotchas", and I want to share them so that others don't have to struggle with the same things I did:
1) The current JDK API (1.4.2) documentation tells you in which version a new method or class was added to the API - but don't trust it! It missed at least one case: apparently the "getX()", "getY()", "getHeight()" and "getWidth()" methods were not part of the "Rectangle" class in JDK 1.1 so this killed the execution under the Microsoft VM. If you're going to develop for 1.1, I highly recommend you download the 1.1 JDK API docs from Sun and use that to make sure the methods you call are supported.
2) Sound support - It doesn't seem to say anywhere, but 1.1 only supports ".au" files that use u-law, 8000 Hz., mono data files. I used GoldWave v5.06 to convert my ".wav" files.
BTW - My game is called "JobHunter", and when I get a little further I'll put it up for feedback. It's based on the skills I learned over the past 3 years unsuccessfully trying to find a job here in the Silicon Valley....
