I'm using QGIS 2.10.1. Is there a way to avoid labels of different layers overlapping each other?
I don't think there is a feature at this time which would do this automatically. You would have to manually set the offsets and placements for each layer's labels.
You could always open a ticket (feature request) to the QGIS developers and hope they implement this in a future QGIS version.