Faits: A. Le 14 juin 2004, B._ a déposé une plainte pénale auprès du Juge d'instruction du canton de Vaud, expliquant que le compte de l'un de ses clients à Curaçao avait été frauduleusement débité de 660'000 USD au total. Cet argent était parvenu sur le compte de la société uruguayenne A._ auprès de C._. Les 14 et 16 juin 2004, le Juge d'instruction a bloqué ce dernier compte, à concurrence de 660'000 USD. Il a également ouvert une enquête pénale contre inconnu pour blanchiment d'argent. Après avoir rejeté deux demandes de levée du blocage, en juillet 2005 puis en septembre 2006, le Juge d'instruction a levé le séquestre le 4 juin 2008 et ordonné la restitution de 660'000 USD à B._. Cette décision, confirmée par le Tribunal d'accusation vaudois, a été annulée par arrêt du Tribunal fédéral du 11 mai 2009 (6B_1035/2008). Une restitution au lésé par l'autorité d'instruction ne pouvait avoir lieu que sur la base d'une situation juridique claire. En l'occurrence, on ignorait si le compte avait été débité en raison d'un comportement astucieux, si la banque avait engagé sa responsabilité en exécutant un ordre falsifié et si elle revêtait la qualité de lésé direct. Les prétentions de A._, qui disait être de bonne foi et avoir fourni une contre-prestation adéquate, n'avaient pas non plus été examinées. Le séquestre des valeurs était maintenu. Le 20 novembre 2009, le Juge d'instruction a, une nouvelle fois, refusé de lever le séquestre et a confirmé le blocage. Par ordonnance du 7 mai 2010, en revanche, il a levé le séquestre et autorisé A._ à disposer de la somme de 660'000 USD. En substance, il a estimé que les autorités étrangères concernées semblaient se désintéresser de l'affaire et que, faute de collaboration avec celles-ci, il n'était pas possible d'établir la mauvaise foi de A._, qui prétendait avoir reçu les fonds dans le cadre d'une opération de compensation. Cette décision a été réformée par le Tribunal d'accusation vaudois qui a maintenu le séquestre. Le recours de A._ contre cette décision a été rejeté par arrêt du Tribunal fédéral du 8 décembre 2010 (1B_312/2010). B. Répondant à une requête de A._ du 22 mai 2012, le Procureur général du Ministère public central du canton de Vaud a, par décision du 1er juin 2012, dit que B._ avait la qualité de partie plaignante (ch. I) et refusé de lever le séquestre (ch. II), confirmant ainsi le blocage de la somme de 660'000 USD (ch. III). Le recours interjeté par A._ auprès de la Chambre des recours pénale du Tribunal cantonal vaudois a été rejeté par arrêt du 29 juin 2012. C. Par acte du 13 août 2012, A._ forme un recours en matière pénale par lequel elle demande, principalement, la réforme de l'arrêt cantonal en ce sens que la levée complète du séquestre du 14 juin 2004 est prononcée et que A._ peut disposer librement de la somme de 660'000 USD. Subsidiairement, elle sollicite le renvoi de la cause à la cour cantonale pour nouvelle décision dans le sens des considérants. Le recours ne porte pas sur la question de la participation d'B._ à la procédure en qualité de partie plaignante. La Chambre des recours pénale se réfère à son arrêt. B._ renonce à se déterminer et le Ministère public n'a pas fait parvenir de prise de position.