Interleaver

Why is an interleaver often placed between an outer block code and an inner convolution code?
The interleaver spreads the errors out so that they are "shared" between many blocks, making them manageable by all the blocks. What is the purpose of...