I was reading the lastest entry from michkap_feed (LiveJournal copy, original place) and found, like him, that the explanation of contextual shaping on the MSDN page About Complex Scripts is rather clever:
Contextual shaping occurs when a script's characters change shape depending on the characters that surround them. This occurs in English cursive writing when a lowercase "l" changes shape depending on the character that precedes it such as an "a" (connects low to the "l") or an "o" (connects high). Arabic is a script that exhibits contextual shaping.
To quote Michael Kaplan,
Those same people who would actually rail on about how the Arabic is "ridiculous" and "unnecessarily intricate" for having a letter change form depending on its position in a word stopped thinking so when they realized that they had been doing the same sort of thing in cursive writing of their own language since they were children.
And, you know—I've never thought about this, either! But it's true: English, at least with cursive writing, does have contextual shaping in a similar way to Arabic (though the rules may not be as complex). And it kind of makes sense, since Arabic is essentially a cursive script, even when printed. (For example, its letters are, in general, joined together; much of the contextual shaping is due to this.)
I'd suggest you read Kaplan's entire entry.