I have been struggling with the same problem, and I can confirm that adding "insmod vbe" to menuentry does fix the problem. I tried adding "insmod vbe" in the header, but for some reason that did not seem to fix the issue. It needed to be added to menuentry.
I propose that "insmod vbe" be added to all menu entries by default (patch included). I don't see why this would be a problem, and it is surely the simplest solution. If it's possible to add "insmod vbe" in the header somehow, then that would obviously be easiest, but I couldn't figure out how to get that to work. I also agree that I've been finding the lack of grub2 documentation pretty frustrating. It's taken me longer than I would have liked to get up to speed with the new system. It looks like this is more of a problem coming from upstream, but I worry a little about jumping into the grub2 transition without much documentation in place. Thanks much for maintaining, though, and hopefully we can smooth things out. jamie.
--- 10_linux.orig 2009-09-28 12:36:07.000000000 +0200
+++ 10_linux 2009-09-28 12:36:38.000000000 +0200
@@ -50,6 +50,7 @@
EOF
prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/"
cat << EOF
+ insmod vbe
linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro $2
EOF
if test -n "${initrd}" ; then
signature.asc
Description: Digital signature

