Comet is the best option without using anything special (like Flash, see below). It's a proven technology and is used by many big sites, like Gmail's chat and Facebook's chat.
The only other option you have is polling, but that can sometimes get a bit intense on the server. You basically have to weigh server load against speed - if you poll often, you get a very responsive client, but you put a lot of load on your server. Poll too little and you keep the load light but clients can only receive messages every n seconds so it can seem slow.
If you decide to poll, you could always create a "back off" system. For example, the page checks every 2 seconds to see if there are any chat messages sent. It does this 5 times and if there is nothing, it increases the delay to 3 seconds. It does this 5 times and after nothing it goes to 4 seconds..etc. When a chat message is sent it goes back down to the shortest delay.
Another option to consider that is even better is using a Flex or Flash client. This way, you can just use TCP sockets which only send data if there is any. But that's only if you really want a Flash app on your site.