Faits:
A. En instance de divorce, X._ a été condamné par voie de mesures provisionnelles à verser en mains de son épouse, domiciliée à Pully, une pension mensuelle de 2'000 fr. pour les mois de novembre 2000 à mars 2001 et de 750 fr. dès le 1er avril 2001.
Il a payé 11'337 fr. sur les 15'520 fr. dus pour la période écoulée du 1er novembre 2000 au 31 décembre 2001. Il n'a plus rien payé du 1er janvier 2002 au 5 octobre 2006.
Le 20 août 2001, son épouse a déposé une plainte, qu'elle a ensuite étendue.
B. Par ordonnance du 4 décembre 2003, X._ a été renvoyé devant le Tribunal de police de l'arrondissement de Lausanne, comme accusé de violation d'une obligation d'entretien (<ref-law>), pour avoir omis de payer la pension alimentaire due à sa famille du 1er novembre 2000 au 31 décembre 2001.
Aux débats, le 26 août 2004, l'épouse a étendu sa plainte aux faits survenus du 31 décembre 2001 au 26 août 2004. Passant au jugement, le tribunal de police a condamné X._, pour violation d'une obligation d'entretien du 1er novembre 2000 au 26 août 2004, à deux mois d'emprisonnement avec sursis pendant deux ans.
Sur recours du condamné, la Cour de cassation pénale du Tribunal cantonal vaudois a, par arrêt du 21 mars 2005, annulé ce jugement pour violation d'une règle essentielle de la procédure, au motif que le premier juge avait retenu à la charge de l'accusé le non paiement de contributions dues pour une période non mentionnée dans l'ordonnance de renvoi, sans avoir préalablement accompli les formalités prescrites à l'art. 354 du code de procédure pénale vaudois (CPP/VD; RS/VD 312.01).
C. Par ordonnance du 7 septembre 2006, X._ a été, sur plainte de l'épouse, renvoyé devant le Tribunal de police de l'arrondissement de Lausanne pour le non paiement des contributions dues de septembre 2004 à septembre 2006. Cette nouvelle procédure a été jointe à la précédente.
D. Statuant à nouveau le 5 octobre 2006, le Tribunal de police de l'arrondissement de Lausanne a, derechef sans avoir accompli les formalités prescrites à l'art. 354 CPP/VD, condamné X._, pour violation d'une obligation d'entretien commise sans discontinuer du 1er novembre 2000 au 5 octobre 2006, à trois mois d'emprisonnement avec sursis pendant trois ans, le maintien du sursis étant subordonné à la condition que l'intéressé s'acquitte régulièrement de la contribution d'entretien mise à sa charge par le juge civil.
X._ a recouru à nouveau au Tribunal cantonal vaudois, notamment pour violation des art. 353 ss CPP/VD en ce qui concerne sa condamnation pour le non paiement des contributions qui n'étaient pas mentionnées dans les ordonnances de renvoi (soit celles échues du 1er janvier 2002 au 31 août 2004).
Par arrêt du 12 mars 2007, la Cour de cassation pénale du Tribunal cantonal vaudois a rejeté ce moyen de nullité comme étant constitutif d'un abus de droit manifeste, confirmé la déclaration de culpabilité et, en application des nouvelles dispositions générales du code pénal, réduit la peine à 90 jours-amende de 30 fr. chacun, avec sursis pendant trois ans, le maintien du sursis étant subordonné à la condition que le condamné s'acquitte régulièrement de la contribution d'entretien mise à sa charge par le juge civil.
E. X._ recourt au Tribunal fédéral contre ce dernier arrêt, dont il demande principalement l'annulation avec renvoi de la cause à la cour cantonale, subsidiairement la réforme en ce sens qu'il est acquitté et, plus subsidiairement encore, la réforme en ce sens que la peine est réduite, le montant du jour-amende réduit à 1 fr. et la règle de conduite supprimée. Il se plaint principalement de fausse application du principe de la bonne foi, subsidiairement de fausse application de l'<ref-law>, plus subsidiairement encore de violation des art. 7 et 12 Cst. et, enfin, de fausse application des art. 34 al. 1 et 2 et 44 al. 2 CP.
Il assortit son recours d'une requête d'effet suspensif et d'une demande d'assistance judiciaire.
La cour cantonale et la partie civile intimée ont renoncé à se déterminer.
Le Ministère public du canton de Vaud conclut au rejet du recours.

Considérant en droit:
1. Interjeté dans le délai de 30 jours prévu par la loi (<ref-law>) par un accusé qui a succombé dans ses conclusions (<ref-law>) et dirigé contre un jugement final (<ref-law>) rendu en matière pénale (<ref-law>) par une autorité de dernière instance cantonale (<ref-law>), le présent recours est en principe recevable.
2. Le recours n'est ouvert au Tribunal fédéral que pour les violations du droit prévues aux art. 95 et 96 LTF.
2.1 Conformément à l'art. 42 al. 1 et 2 LTF, le mémoire de recours doit, sous peine d'irrecevabilité (<ref-law>), exposer succinctement en quoi l'acte attaqué viole le droit, au sens des art. 95 et 96 LTF. Aussi le Tribunal fédéral n'examine-t-il en règle générale que les griefs soulevés par le recourant; il n'est pas tenu de traiter, comme le ferait une autorité de première instance, toutes les questions juridiques qui se posent, si celles-ci ne sont plus discutées devant lui.
2.2 Dans le cadre du litige ainsi défini et sous réserve de la violation des droits constitutionnels et des questions relevant du droit cantonal ou intercantonal, qu'il ne peut examiner que si le grief a été invoqué et motivé de manière précise par la partie recourante (<ref-law>), le Tribunal fédéral examine d'office l'application du droit (<ref-law>). Il n'est limité ni par les arguments soulevés dans le mémoire de recours ni par le raisonnement de l'autorité précédente; il peut admettre le recours pour d'autres motifs que ceux avancés par le recourant ou, au contraire, le rejeter par substitution de motifs (cf. <ref-ruling> consid. 1.4 p. 140).
Juge du droit, le Tribunal fédéral conduit son raisonnement sur la base des faits retenus par l'autorité précédente (<ref-law>). Il ne peut s'en écarter que si ceux-ci ont été établis en violation du droit au sens de l'<ref-law> ou de façon manifestement inexacte (<ref-law>), c'est-à-dire arbitraire (cf. Message du Conseil fédéral concernant la révision totale de l'organisation judiciaire fédérale, du 28 février 2001, FF 2001 4135). Le recourant qui entend s'écarter des faits constatés par l'autorité précédente doit expliquer de manière circonstanciée en quoi les conditions d'une exception prévue par l'<ref-law> seraient remplies; à défaut de ces précisions, il est impossible d'entrer en matière sur son grief (cf. <ref-ruling> consid. 6.2 p. 288 et les références). Les critiques purement appellatoires - c'est-à-dire qui ne font qu'inviter le Tribunal fédéral à substituer sa propre appréciation des preuves à celles de l'autorité précédente - sont dès lors irrecevables.
3. En premier lieu, le recourant soutient que la cour cantonale a fait une fausse application du principe général de la bonne foi en ce qu'elle a refusé d'annuler le jugement de première instance pour violation de la maxime accusatoire (art. 353 ss CPP/VD; 29 al. 2, 32 al. 2 Cst.; 6 par. 3 CEDH) au motif que le moyen de nullité qu'en tirait le recourant constituait un abus de droit manifeste, alors que - selon le recourant - le principe de la bonne foi ne saurait faire échec à une règle aussi essentielle de la procédure pénale que la maxime accusatoire.
3.1 Les parties au procès pénal sont tenues de se comporter conformément aux règles de la bonne foi (cf. art. 5 al. 3 Cst.; Gérard Piquerez, Traité de procédure pénale suisse, 2ème éd., n. 356 ss p. 235). En particulier, la partie qui s'aperçoit qu'une règle de procédure est violée à son détriment ne saurait laisser le procès suivre son cours sans réagir - lors même qu'il serait encore possible de corriger le vice - dans le seul but de se ménager un moyen de nullité pour le cas où le jugement à intervenir ne la satisferait pas. Les manoeuvres dilatoires de cette sorte constituent en principe un abus de droit, que la Constitution et la loi ne protègent pas. La partie qui commet un tel abus ne peut pas obtenir l'annulation du jugement à raison de l'irrégularité qu'elle a laissé commettre, à moins que le vice qui résulte de cette irrégularité ne soit d'une gravité telle que l'autorité de recours doive de toute façon le redresser d'office ou que la loi de procédure applicable n'en dispose autrement (cf. <ref-ruling> consid. 2a p. 495; Jean-François Egli, La protection de la bonne foi dans le procès, Rep. 1991 p. 225 ss, spéc. p. 239/240). Mais l'absence de réaction immédiate à la violation d'une règle de procédure ne constitue pas un abus de droit et n'empêche dès lors pas la partie restée passive de se prévaloir ensuite de l'irrégularité, si elle était autorisée par un droit constitutionnel à ne pas réagir immédiatement.
3.2 La maxime accusatoire, ou principe de l'accusation, a une double portée.
D'une part, imposant la séparation des fonctions de poursuite et de jugement, elle interdit au juge du fond de se saisir d'office (Piquerez, op. cit., n. 321 p. 207). Par conséquent, elle circonscrit étroitement sa saisine, en lui interdisant notamment de statuer sur d'autres faits (gestes ou comportements imputés à l'accusé) que ceux visés dans l'acte d'accusation (cf. Armand Meyer, Die Bindung des Strafrichters an die eingeklagte Tat [Tatidentität], thèse Zurich 1972, p. 4). Sous cet aspect, la maxime accusatoire n'est un droit constitutionnel du citoyen que dans la mesure où la séparation des fonctions de poursuite et de jugement est nécessaire à l'indépendance et à l'impartialité du juge du fond, au sens des art. 30 al. 1 Cst. et 6 par. 1 CEDH. Pour le surplus, il s'agit d'un principe doctrinal dont les législateurs fédéral et cantonaux se sont inspirés plus ou moins fidèlement pour organiser l'instance pénale.
D'autre part, la maxime accusatoire confère des droits procéduraux à l'accusé, en exigeant que celui-ci soit informé des faits qui lui sont imputés et des peines qu'il encourt, assez tôt dans la procédure et de manière assez précise pour qu'il puisse s'expliquer et préparer efficacement sa défense (<ref-ruling> consid. 2a p. 21; <ref-ruling> consid. 2b p. 353; <ref-ruling> consid. 3a/cc p. 458 s.). Sous ce second aspect, la maxime accusatoire est un droit constitutionnel du citoyen (cf. art. 32 al. 2 Cst. et 6 par. 3 CEDH) qui forme l'une des composantes du droit d'être entendu (art. 29 al. 2 Cst.) et des droits de la défense (cf. Piquerez, op. cit., n. 322 p. 207). Elle n'interdit certes pas au juge du fond de s'écarter de l'état de fait ou de la qualification juridique retenu dans l'acte d'accusation, mais elle impose que tout changement important par rapport au contenu de l'acte d'accusation soit précédé d'un avis exprès à l'accusé et, au besoin, de l'octroi à celui-ci d'un délai raisonnable pour compléter sa défense (cf. <ref-ruling> consid. 2a et c p. 21 ss).
En procédure pénale vaudoise, la maxime accusatoire est, en tant qu'elle règle la saisine du juge du fond, absolue en ce qui concerne la saisine in personam - l'art. 352 CPP/VD excluant que les débats puissent être dirigés contre d'autres personnes que celles déférées au juge par l'ordonnance ou l'arrêt de renvoi - et atténuée en ce qui concerne la saisine in rem. En effet, lorsque les débats révèlent d'autres faits délictueux de l'accusé que ceux mentionnés dans l'ordonnance de renvoi, le juge du fond peut s'en saisir d'office, avec ou sans complément d'enquête (art. 354 al. 1 CPP/VD). Mais il doit, pour ce faire, recourir à la procédure d'aggravation ou de modification de l'accusation prévue à l'art. 354 CPP, en informant l'accusé, expressément et avec précision, des faits nouveaux qu'il se réserve de retenir à sa charge et en lui accordant, au besoin, un délai raisonnable pour compléter sa défense (cf. art. 353 et 354 CPP/VD).
En l'espèce, le tribunal de police a donc violé aussi bien les droits de la défense que les règles de procédure cantonales qui gouvernaient sa propre saisine en instruisant et en statuant sur le non paiement des contributions échues entre les deux périodes visées par les ordonnances de renvoi sans avoir préalablement aggravé l'accusation conformément à l'art. 354 CPP/VD.
3.3 Lorsqu'il a comparu devant le tribunal de police - après annulation d'un premier jugement pour violation de l'art. 353 CPP/VD - le recourant, assisté d'une avocate, devait se douter que l'instruction et le jugement ne porteraient pas seulement sur le non paiement des contributions visées dans les ordonnances de renvoi, mais encore sur le non paiement des contributions échues du 1er janvier 2002 au 31 août 2004. Une fois l'intention du tribunal de statuer sur ces faits rendue clairement reconnaissable par les questions abordées aux débats, le recourant a même pu se rendre précisément compte de l'irrégularité que le tribunal de première instance allait commettre. Cependant, comme tout accusé, il avait le droit, garanti notamment à l'art. 6 par. 1 CEDH, de ne pas s'incriminer lui-même. Dès lors, on ne saurait l'empêcher de se prévaloir du vice qui affecte le jugement de première instance au motif qu'il n'a pas pris l'initiative de requérir que le tribunal lui donne l'avis prescrit à l'art. 354 CPP/VD, c'est-à-dire de solliciter sa propre mise en accusation sur les faits non visés par l'ordonnance de renvoi. Il s'ensuit qu'en rejetant le recours en nullité dont elle était saisie, la cour cantonale a fait une fausse application du principe de la bonne foi. Le présent recours, bien fondé, doit dès lors être admis et l'arrêt entrepris être annulé.
4. Comme l'accusateur public succombe, il n'y a pas lieu de prélever des frais de justice (cf. <ref-law>).
Le recourant, qui obtient gain de cause, a droit à des dépens (<ref-law>), dont il convient d'ordonner la distraction au profit de son conseil. Partant, sa demande d'assistance judiciaire n'a plus d'objet.
5. La cause étant ainsi jugée, la requête d'effet suspensif du recourant n'a plus d'objet.

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est admis, l'arrêt entrepris annulé et la cause renvoyée à la cour cantonale pour nouvelle décision.
2. Il n'est pas perçu de frais judiciaires.
3. Une indemnité de 2'000 fr., à payer à Me Kathrin Gruber à titre de dépens, est mise à la charge du canton de Vaud.
4. La demande d'assistance judiciaire et la requête d'effet suspensif n'ont plus d'objet.
5. Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Vaud, Cour de cassation pénale.
Lausanne, le 4 juillet 2008
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président: Le Greffier:
Schneider Oulevey