Hi,
There's many ways of doing that, one of then is edit the /etc/inittab and insert a line like:
x:5
nce:/bin/su -l user -c /usr/bin/X11/startx
You can change 5 for another runlevel, once to respawn or use other command beside startx ...
It can be done with kdm too if you prefer, it has a configuration tool in Kcontrol to facilitate this kind of work, and you will not need to modify your inittab ...