What happens when the xor inBlock chaining returns false?
Say you have blocks ABCDEA that you want to encrypt. If you do this naively, then the first and second A produce the same encrypted result, and an attacker would know that your first and last block are the same. 

Instead you encrypt to A’B’C’ etc. by encrypting A -> A’, A’ XOR B ->B’, B’ XOR C -> C’, ..., E’ XOR A -> F’. It looks like you are encrypting random data, nothing an attacker can do. 

The identical plain text blocks are XOR-ed with different previously encrypted blocks, that what’s making them different.