You didn't read the whole of my post. In addition to editing /etc/passwd, you also have to edit /etc/inittab. I defined a new runlevel, number 3 (IIRC, JB6 uses 2 as the default runlevel). For this run level, I don't run a getty, but rather have it log directly in as the username with no password, i.e.:
1:3:respawn:/bin/su - username
I'm not at a linux box now (stuck at work with windows), but I think before it had something like
1:23:respawn:/bin/getty
or something like that. That means that on console 1, it used to start a getty (i.e. a login manager) for runlevels 2 and 3. Now, with the changes I made, when it boots into run level 3 (set in inittab on the default line, forget exact syntax, but is usually the first non-comment line) it will not start a getty but rather log in username, who, according to /etc/passwd runs X as its "shell", so there you go.
If you keep hitting tab during the BIOS' POST, you will get the LILO prompt. If you enter "hdb init 2" instead of letting it go to a default of 3, then you won't boot into X. Nor will you have a getty on the first console, but that is no problem since you can just alt-F2 over to the next one and log in as root there and fix whatever is broken.