I've always relied on 3rd party hosted chat services. Usually java applet based. The cost of having a separate chat server, plus the software to run it has always prevented me from having my own dedicated service.

I'm using Parachat and have loved the ability to customize and basically have a dedicated service without any additional expense. The service with a set number of concurrent users costs less per month than the server lease on a separate box to run the chat server myself. One more feature to offer, one less headache.