I tracked this down, eventually, but I would have appreciated if the forums had given me guidance, so I'm adding the post I would have liked to have found.
The Karmic /boot/grub/grub.cfg entries for memtest86+ generated by /etc/grub.d/20_memtest86+ have a problem if /boot is on a different file system than /usr. This is reported as https://bugs.launchpad.net/ubuntu/+s...6+/+bug/450351 and is reported as fixed in Lucid, but seems is not being fixed in Karmic.
If you just want to run it once, you can use the grub e command on an Ubuntu menu entry and note the "set root=" entry. Escape out of that and use e on the memtest86+ entry to add the same set root command on a line before the one that's there, so that it looks like, for example:
and run it with ctrl-x.
You can fix it in /boot/grub/grub.cfg but that will be overwritten the next time it is generated, or you can fix /etc/grub.d/20_memtest86+ to make it call prepare_grub_to_access_device in the way the other scripts do.