I don't know if maybe I'm a freak or just the only guy that admits this but it's because guys sweat a lot and if I happen to do some activity that makes me sweat I don't want my sweat to show through my clothes. The first shirt absorbs the sweat and keeps the nice shirt I wear on the outside form getting deodorant stains.
I typically do so for two reasons. First, layering allows me to cool off as necessary (it gets friggin hot down here). Second, the heat allows for large amounts of sweating, and giant wet spots all over doesn't make for a very good appearance.
It's a good style. Layering has been in for ever. Not only for guys but for girls too. T-shirt on t-shirt looks great. Especially when they are completely different collies, and you roll up the sleeves. Try it sometime. Very cute.