Faits: A. A._ a été arrêté le 15 octobre 2011 dans le cadre d'une instruction pénale conduite par le Ministère public de l'arrondissement de Lausanne (ci-après: le Ministère public) et portant sur un trafic de stupéfiants. Il lui est en substance reproché d'avoir participé à un trafic international d'héroïne portant sur plusieurs kilos. Relaxé le 16 octobre 2011, A._ a été appréhendé une seconde fois le lendemain matin suite à de nouveaux développements de l'enquête. Par ordonnance du 19 octobre 2011, le Tribunal des mesures de contrainte du canton du Vaud (ci-après: le Tmc) a ordonné la détention provisoire du prénommé, en raison de risques de fuite et de collusion. Par ordonnance du 13 janvier 2012, le Tmc a prolongé la détention provisoire de A._ jusqu'au 17 avril 2012. L'intéressé a recouru contre cette décision auprès de la Chambre des recours pénale du Tribunal cantonal du canton du Vaud (ci-après: le Tribunal cantonal), qui a rejeté ce recours par arrêt du 31 janvier 2012. Constatant qu'il existait des charges suffisantes à l'encontre de A._, cette autorité a considéré que le maintien en détention provisoire était justifié par les risques de fuite et de collusion. B. A._ recourt contre cette ordonnance auprès du Tribunal fédéral, en concluant à ce que la décision attaquée soit réformée dans le sens d'une mise en liberté immédiate. Il se plaint d'une appréciation arbitraire des faits et invoque implicitement la violation des dispositions du code de procédure pénale suisse (CPP; RS 312.0) relatives à la détention avant jugement. Il requiert en outre l'octroi de l'assistance judiciaire. Le Ministère public conclut au rejet du recours en se référant aux considérants de la décision attaquée. Le Tribunal cantonal a renoncé à se déterminer. Le recourant a présenté des observations complémentaires.