Hi I'm wondering how hosts setup vhosts. It's an issue because the php scripts I use require the Server name to be set. For example with ukhost4u they said I just need to point my existing domain to their name servers but how does that in turn set the server name? Is it not manually configured ?
Unless they've already set the DNS up for you (or you've done it there), then changing the nameservers won't fix anything.
You need to ensure you have DNS for the domain or subdomain pointing to your server, then you need to make sure the server will serve the correct domain for this IP (which is where the vhosts come in).
See http://articles.slicehost.com/2007/9/17/introduction-to-virtual-hosts for an explanation and see these two articles for instructions setting them up on CentOS. If you run a different distribution, please include more information in your question.
If you are not familiar with setting up apache or setting hostnames I would check out the Rackspace CloudServer docs.
Those cover most of the basic setup of apache and virutalhosts.