I have written a team balancing plugin for CS 1.6 and am using cs_set_user_team for changing the players team. Though, most of the time this works fine and players spawn at the new spawn locations (according to the new team), but sometimes they spawn at the location of their old team.