The following is an excerpt from page 20 of the Warhammer Annual 2002 release with an expanded explanation by Gav Thorpe regarding how to resolve cannon hits.
The cannon rules on page 122 of the Warhammer rulebook contains the line, "When a cannonball collides through a unit, only one model per rank is hit". This has, understandably, caused some players to think that a unit hit in the flank by a cannon (enfilading fire, for you word buffs) will only ever lose one model out of a rank (see diagram 5).
Actually, the rule is written that way because the imaginary line that traces the course of the cannonball is infinitely thin, and therefore cannot pass between two models and affect them both (see diagram 6).
You should consider a unit that is hit in the flanks by a cannon (or a bolt thrower, for that matter) to have a number of ranks equal to its width. This means that if the shot passes along a rank, it can affect more than one model (see diagram 7).
Sometimes a cannon ball may bounce through intervening terrain which the players think should probably stop it. When discussing the terrain before the battle commences, it is worth bearing in mind if any pieces of scenery will stop a cannon ball passing through. As ever, the diversity of terrain which people may have makes a hard and fast list impossible, but cliffs and very steep slopes, buildings, ruins and the like may well stop a cannon ball in its tracks, although the majority of terrain (including woods, obstacles and such) should not (see diagram 8).