<p>I am sure there are many developers out here who have team spread across different time zones. What are some of the challenges people face and whats the best way to tackle them?</p>

In all honesty, any company that has split development of a project across time zones is out of touch with the realities of engineering.  The MBAs, in an attempt to save themselves a buck or two, foist upon their engineers the unenviable position of altering the schedules of their lives - leading to high stress, longer work hours, lower morale, and higher turnover.  Quality suffers, ship dates suffer, feature lists suffer.  The only increase you'll see in your project is the bug count.
You can have engineering projects split up like this if you don't have any need for low-latency communication between project units.  In other words - if they are working on almost entirely independent segments of the system.