This is the best article that I've found on CAP. It's thorough and has been well reviewed by experts.
you-cant-sacrifice-partition-tolerance
The take away for me is this:
1) On a non-Partitioned or non-distributed system, you can guarantee Consistency and Availability.
2) Once you introduce Partitions, then you have to choose between Consistency and Availability. You can't have both. Most companies will chose Availability over Consistency.
note: Some systems claim that they can guarantee C, A and P. The caveat is that the guarantee does not apply to a single piece of data. It's still CA, CP, or AP, but the system can support multiple tunings at the same time.