Question: Can grub have submenus?
Answer: Yes.

From http://jbakshi.50webs.com/Linux_tutorial/GRUB/GNU%20GRUB%20simplified.html
Creating Submenu !!! Yes it is possible :-)
Suppose the submenu file is called submenu.lst and located at /boot/grub 
We can call this submenu by placing the configuration below in menu.lst 
 # calling submenu 
title Sub-menu 
configfile (hd0,2)/boot/grub/submenu.lst
In submenu.lst file we must have the configuration to come back to the main menu. Below is such an example 
 # submenu.lst file
# Go to main menu 
title Main-menu 
configfile (hd0,2)/boot/grub/menu.lst

On 21 October 2010 14:35, Brandon Lozza <brandon@pwnage.ca> wrote:
On Thu, Oct 21, 2010 at 8:53 AM, Christoph Wickert
<christoph.wickert@googlemail.com> wrote:
> Am Donnerstag, den 21.10.2010, 21:22 +1100 schrieb Christopher Hawker:
>> Hello All,
>>
>> For the boot menu, would it not be more simple to have something like
>>
>> * Boot Fedora Live
>> * Install Fedora KDE
>> * Install Fedora LXDE
>> * Install Fedora XFCE
>
> s/Install/Boot
>
>> * Verify media
>
Hi, i'm new here and I wanted to share some of my ideas.

It's perfectly valid to want to both verify, live boot and install all
the alternative desktops. Not everyone wants to use Gnome. It should
also be clearly labeled as such because "Live" by itself is
meaningless. Also, stating Fedora  a bunch of times is redundant. I
suggest the following for the boot menu:

Boot Fedora Desktop Live
Boot Fedora KDE Live
Boot Fedora LXDE Live
Boot Fedora XFCE Live

Install Fedora Desktop
Install Fedora KDE
Install Fedora LXDE
Install Fedora XFCE

Verify.... etc (list each)

A user who has a copy of a multi spin disk shouldn't be surprised that
their boot menu has a lot of options. We can't leave them off without
reducing functionality and this disk shouldn't have less functionality
than each of the individual LiveCDs.

Also Is there any possibility of using sub menus in grub? Such that
you only see a few options and when you select KDE for example, it
asks if you want to Boot, Install or Verify the image?