take a look at a product called winaxe:
it is an xserver written for windows... basically. How it works is a user on a windows machine starts winaxe, enters their userid / passwd, then winaxe connects to the linux server and starts an xsession for the user. basically a graphical telnet.
also winaxe is much cheaper than other x-for-windows products like hummingbird.