To summarize, your users have separate displays, and you want them to have separate passwords. They will still all be running under your user ID, i.e., in a shell in an xterm, they can do anything you could (including setting everyone's VNC passwords). Is that what you want?
According to
man vnc, the password is in $HOME/.vnc/passwd; so you need vary $HOME. I'd set up some directory VNC where they live, e.g., assuming bash,
Code:
export VNC=~/vnc
mkdir $VNC/{,joe,jane,tom,dick,harry}
Then you can start them up like this,
Code:
HOME=$VNC/joe vncserver :1
HOME=$VNC/jane vncserver :2
HOME=$VNC/tom vncserver:3
And so on. The first time it will ask you for passwords, which you can all make different. Or you could set them first using vncpasswd (supplying the same fake HOME).
I'm not sure what's the best technique to have it always available, and I haven't done this.
In
man Xvnc, read the section on usage with inetd -- it might solve your needs, without actually starting vncserver when the computer boots. I'd try that first, because apparently it's supposed to work this way.
To have some service running whenever my computer is up, I generally use daemontools. It supervises the program and restarts it if it accidentally dies. But I haven't done this with vncserver.
Yet another approach would be to write a new script in /etc/init.d (take an existing script as template) and symlink it to the appropriate /etc/rc?.d. Beware that those scripts are executed by root (at startup), and you will want to run the vncserver as a harmless user. You could even create separate Unix users for Joe, Jane etc.