Is there any way to ensure that a specific USB key always gets the same drive letter?

If you insert the USB key and then go to the Disk Management Console (right-click '(My) Computer' and select 'Manage' then 'Storage' in the left hand panel). You can then right-click a drive in the right hand panel and select 'Change Drive Letter and Paths...' where you can assign it a specific drive.
Then repeat the process for each USB key.

I'd keep the letters towards the end of the alphabet to avoid conflicts with other removable media.

I go from 'U' upwards...

There is a tool called USB Drive Letter Manager (USBDLM) with a whole bunch of features for USB drives such as stable drive letters depending on the device ID, hiding non-used card reader drive letters, starting scripts on connect (of certain devices), ... Really cool and stable solution for all the Windows USB deficiencies!

I'm pretty sure this is not possible out-of-the box (though I have seen some third party utilities that claim to massage Windows' behaviour to this effect).

What you can do though is use the disk manager (found in the tree of configuration options accessed via "manage" from the right-click menu on "my computer" in XP) set the volume to appear in a particular directory instead of, or as well as, under a drive letter. This does seem to stick. For instance, one of my USB drives always appears as c:\mnt\littlered, and the three partitions on an old hard-drive that I sometimes connect via a PATA->USB adaptor turn up as c:\mnt\oldsys_c, c:\mnt\oldsys_e and c:\mnt\oldsys_f.

If the drive letter is important (rather than the volume just being in the same place more generally) then you could try sharing the directory that you chose and map that share locally as a particular drive letter. I'm not tried this myself, but in theory it should work without issue.

Exactly how Windows identifies the drives I've not seen documented, so this may fall down if you have two completely identical mass storage devices, but it has worked for me so far.