The IPC$ share is used by a client when it needs to send a command to the server. This command can be a request to have the list of the shares available on the server. But this can also include the exchange of command usefull to get the list of users defined on a Server, to dynamically change some parameter on the server, etc ...
This IPC$ share is in fact used to allow the Server to receive what is called a Remote Procedure Call.
Typical RPC call that a NT server can recognize is the facility to start and stop remotely a service from a remote location, or modifying the content of the list of users (the SAM database).
(thank you google

)
anywho, basically, i believe those are the hidden default shares...i.e. any machine on the network can try and access \\computername\c$ or whatever, and you can access remote drives if you have a username and password (admin)