Since all our buildings are connected by high-speed links (fiber/DS3), we have one cluster over the WAN, with one CCM server at each location. One publisher CCM, two subscriber CCM's, and our publisher also is our TFTP server. Clustering over the WAN can be tricky, and it's only approved by Cisco if you have high-speed links and solid QOS. Most people use the centralized, distributed or a combination of both for their call processing (the Cisco 4.X SRND has more info on that). Before CCM, we had an SBC Centrex system with ISDN and Analog lines, and SMDI voicemail ports connected to a third party voicemail system (how much did that suck!)
When I get to work tomorrow, I'll email you the manual...and yes, CCM comes with the SCCP firmware for the phones (basically, if you use CCM, your IP phones must be SCCP). When you hook up a phone to your network (provided you've added the phone to your CCM first), the first thing it does is get an IP address from the DHCP server, then get option 150 (the TFTP server address), then goes to the TFTP server and automatically downloads its image. These images are upgraded by Cisco on their site from time to time, found in Device Packs available for download from CCO, and when you do CCM software upgrades.
TMH