There is some overhead involved in doing the encryption, but on most computers this is trivial. Of course, the client's browser needs to support SSL.
SSL encrypts the contents of the HTTP stream and well behaved proxies and caches will not cache a https:// page. (Even if they do, the page would still have to be decrypted, a non-trivial task with 128 bit encryption; easier with 56 or 40 bit.)
If you really have important, confidential information, you should get a trusted third party certificate so users would know right away if your site was being spoofed. (You can generate your own certificate and still utilize ssl, but so could an interloper pretending to be your site.)
Similarly, if you only want certain client to access your cite, make them get certificates and instruct your web server only to serve web pages to clients with authorized certificates.