Anyone familiar with Classical Arabic and a modern dialect like Cairene or Damascene Arabic will instantly notice that the verbal system behaves a little different from what one might be used to. Verbs that are traditionally CaCaCa verbs, like waqaʕa 'to fall' have transitioned to CiCiC verbs (< *CaCiCa), Cairene wiʔiʕ 'to fall' and old CaCiCa like ʕamila 'to make' have transitioned to CaCaC verbs (< *CaCaCa), Cairene ʕamal 'id.'. In Clive Holes' 2004 book Modern Arabic (pp. 125-129), he describes the transition from the Old Arabic system to the system of the Urban dialects (using Cairene Arabic as a point of departure). There are several important observations in this book that help us better understand this system, but also some obvious factual inaccuracies which significantly diminish the quality of the observations.
Let us first discuss the Classical Arabic system, and then go through some of the observations we can make about the Urban dialects and how they have developed.
The Classical Arabic System
In Classical Arabic there are in essence three Perfect stems, each with a different vowel in the second vowel slot, e.g. kataba 'he wrote', ʕariqa 'he sweated', kabura 'he grew big'.
Imperfect stems have the shape yaCCvCu where v may once again be a, i or u. CaCiCa stems always have yaCCaCu imperfects; CaCuCa always have yaCCuCu imperfect, but CaCaCa verbs may have either a, i or u.
kataba/yaktubu; xadama/yaxdimu 'to work'; fataḥa/yaftaḥu 'to open'
CaCaCa verbs that have yaCCaCu imperfects are fairly predictable. If verbs have a guttural as the second or third root consonant, the imperfect vowel is almost always a. This is phonetic conditioning is ancient and attested in other Semitic languages as well.
The choice between u and i is lexically determined, although it is not at all uncommon for both forms to co-occur. For example yaxdimu 'he works' can also occur as yaxdumu.
The three classes (a-perfect, i-perfect and u-perfect) are to a large extent lexically determined. Dynamic (often transitive) verbs are usually a-perfects; stative/medial verbs are usually i-perfects and u-perfects are verbs that express permanent adjectival qualities.
Reconfiguration of the a-, i- and u-perfects
Holes shows convincingly that in Cairene Arabic the function of the three perfects has reconfigured a little bit. a-perfects have mostly come to be associated with transitive verbs, i-perfects with intransitive/medial verbs and u-perfects have mostly started merging with i-perfects. As a result verbs have started transitioning from one class to the other. Hence:
ʕamila 'to make' > ʕamal (because transitive)
waqaʕa 'to fall' > wiʔiʕ (because intransitive)
kaṯura 'be(come) numerous' > kitir/kutur (because u-perfects are merging with the intransitive type)
While this transition is not necessarily absolutely complete, and does not affect all the same words in different Arabic dialects (in Damascene Arabic, for example to make is still ʕəmel < *ʕamila), the general trend is certainly in this direction, and helps us explain any verb that does not agree with the Classical Arabic pattern.
The imperfect vowels according to Holes
So what happens to the imperfect vowels? According to Holes a fairly extensive reconfiguration takes place here too which can be summed up with this overview:
(s-stem = perfect; p-stem = imperfect; postvelar = guttural)
In other words, Holes claims that the a-perfect/a-imperfect class now not only regularly takes words that have a guttural in second or third position but also verbs that have an emphatic consonant in the root, and that emphatic verbs with other vocalisms are negligible small. This simply is not true. Holes bases this on 116 random verbs from Hinds & Badawi, these must have contained a unusually small number of emphatic verbs, which by a statistical freak accident all had a-imperfects. I went through the whole dictionary and checked every single emphatic verb:
There are only 17 verbs which are only emphatic (and do not also have a guttural in second or third position) which have a-perfect/a-imperfect.
There are 18 verbs which are only emphatic which have a-perfect/i-imperfect.
There 98 verbs (!) which are only emphatic which have a-perfect/u-imperfect.
In other words, the pattern is essentially the opposite of what Holes describes. If anything, emphatic roots are regularly associated with u-imperfects, then i-imperfects, and most rarely with a-imperfects (from which quite a few have optional i-perfects and could therefore be considered regular).
The other results seems generally in line with what we find in Cairene, but the generalization skips over a part that is of historical significance. Cairene (and other Urban dialects) have developed verb stems which do not exist in Classical Arabic and do not seem to have existed in Proto-Arabic such as i-perfect/i-imperfect verbs, i-perfect/u-imperfect verbs and (non-Guttural) a-perfect/a-imperfect verbs. These forms remain unexplained in Holes' model. Besides Holes' erroneous statement that emphatic verbs have become a-perfect/a-imperfect verbs, the system he describes is essentially identical to the Classical Arabic system and therefore fails to explain such exceptions.
The imperfect vowels according to me
I would like to present a different solution to the problem, which I believe explains the exceptions rather well. Rather than assuming the imperfect stems were redistributed, I would suggest that they were often kept unchanged, despite the perfect changing.
In Cairene Arabic, as well as other Urban dialects, the strict distribution of the Perfect to Imperfect vowels is lost. i-perfects no longer have only a-imperfects but now also i- and u-imperfects, e.g.
Cair. nizil/yinzil 'to descend'; Dam. nəzel/yənzel
Cair. sikit/yiskut 'to be silent'; Dam. səket/yəskot
Cair. ʔibil/yiʔbal 'to accept'; Dam. ʔəbel/yəʔbal
In other words, the presence of an a-perfect or i-perfect no longer allows us to make predictions about what the vowel of the imperfect is going to be, as both can have a-, i- and u-imperfects (although still very reasonable guesses can be made).
if we assume that when original a-perfects shifted to i-perfects (because they were intransitive), but the imperfect vowels simply retained the vowel they originally had, we can easily make sense of such exceptions:
nizil corresponds to CAr. nazala/yanzilu. While the perfect became an i-perfect, the verb simply retained its i-imperfect from back when it was an a-perfect.
misik corresponds to CAr. maska/yamsiku, yamsuku. While the perfect became an i-perfect, the verb simply retained its i-imperfect from back when it was an a-perfect.
sikit corresponds to CAr. sakata/yaskutu. Perfect became an i-perfect, imperfect remained an u-imperfect.
ʔibil corresponds to CAr. qabila/yaqbalu and simply remained unchanged.
As the third class (i-perfect/a-imperfect) is still by far the largest class, we do see that some imperfects have simply transitioned to that system in Cairene, e.g.
CAr. ʕarafa/yaʕrifu 'to know'; Cair. ʕirif/yiʕraf; But here we see in Damascene that non-regularized pattern is still retained in the imperfect: ʕəref/yəʕref.
This innovation of the perfect but retention of the imperfect also works the other way around. For example the verb CAr. ḥafiẓa/yiḥfaẓ 'to preserve', being a transitive verb has become an a-perfect. The resulting verbs in Cairene is ḥafaẓ/yiḥfaẓ, with an a-perfect corresponding to a retained a-imperfect.
This development in the opposite direction actually explains quite a few of the emphatic a-perfect/a-imperfect verbs without having to resort to the an explanation that involves conditioning by emphatics (which clearly doesn't work):
Cair. ḥafaẓ/yiḥfaẓ CAr. ḥafiẓa/yaḥfizu 'to keep'
Cair. xaṭaf/yixṭaf CAr. xaṭifa/yaxṭafu 'to snatch'
Cair. ḍaman/yindam CAr. ḍamina/yanḍamu 'to cling'
Cair. raḍaʕ, riḍiʕ/yirḍaʕ CAr. raḍiʕa/yarḍaʕu 'to suckle'
And in fact, several of the eight non-emphatic a-perfect/a-imperfects (I've counted 8) may be explained in a similar way:
Cair. fašal/yifšal CAr. fašila/yafšalu 'to fail'
Cair. ʔalaf, ʔilif/yiʔlaf CAr. ʔalifa/yaʔlafu 'to get used to'
This still leaves us with a few a-perfect/a-imperfect verbs that have no obvious explanation, but a distribution of 13 emphatic versus 6 unemphatic verbs of this type does not strongly suggest that emphasis was a deciding factor here.
It appears to be somewhat of a myth that a-perfect/a-imperfect verb were spread to emphatic roots in Cairene Arabic. You find the same claim, for example, in Manfred Woidich's EALL entry "An i-perfect usually has an a-imperfect, whereas the a-perfect is often found with an i- or u-imperfect, except when the final syllable ends with a back consonant (emphatic, pharyngeal)". Examining the Cairene dictionary of Hinds & Badawi shows that this generalization does not explain the facts.
Holes' insight that intransitive a-perfects are shifting to i-perfects and transitive i-perfects are shifting to a-perfects is profound and useful. It explains many of the mismatches that we find between Classical Arabic and Cairene Arabic (as well as other Urban dialects).
If we assume that the imperfect vowels were not automatically adjusted when the perfect shifted class, we can explains the birth of new classes that are alien to Classical Arabic such as i-perfect/i-imperfect and i-perfect/u-imperfect. As the general statistical generalizations that existed in Classical Arabic still hold up, it is moreover not at all surprising when we occasionally find that a predicted i-perfect/i-imperfect has shifted to the much more common i-perfect/a-imperfect; and occasionally when we are lucky, comparative data shows us traces of the previous situation (as is the case with Cairene ʕirif/yiʕraf; Damascene ʕəref/yəʕref 'to know').
 I'm assuming here that Classical Arabic represents the Proto-Arabic situation. This is not a given, but as Classical Arabic is significantly more idiosyncratic than modern "Urban" dialects, this assumption seems grosso modo justified.
 A quick search for verbs that work the same way with the same explanation yielded this list: birik/yibrik; ḥilif/yiḥlif; rikiz/yirkiz; ʕitib/yiʕtib; ʕilif/yiʕlif; ʕinid/yiʕnid; firid/yifrid; filit/yiflit; misik/yimsik; nifid/yinfid; wiris/yiwris; wiṣil/yiwṣil; wilid/yiwlid.
The only verb I have found that is an original i-perfect which has an i-imperfect in the dictionary is libis/yilbis (instead of expected libis/yilbas 'to wear' cf. CAr. labisa/yalbasu, the reason for this irregularity is unclear, but it is widespread. Compare Damascene ləbes/yəlbes.