The easiest way I would know of to do this is to do something like this:
Setup your machine to start in runlevel 3 as default by editing your /etc/inittab file or keeping it the same as how you already have it apparently.
Then create a file called .bash_login in your users /home directory, make sure it has the period in front like mentioned, its a hidden file, etc.
In this file add this which will basically be a prompt once a user logs in if they want to start up X or stay in the command line:
Code:
#!/bin/bash
# Script to ask user to start X at login or stay in the CLI.
echo -n "Would you like to start X (y or n)? "
read INPUT
if [ "$INPUT" = "y" ]; then
startx
else
echo "You selected not to start X, if at anytime you want to start X, simply type startx"
fi
I haven't tested this but this should work AFAIK. You can however simply put 'startx' in the .bash_login file and once you login, it will automatically startx, if it fails, it will just throw you back into the command line instead of attempting to loop like runlevel 4 will do to ya.
Cheers and hope this is what you were looking for.