Respawning in UT is random, but depends a lot on the position of your opponent.
You probably know from teamsay, that each UT map is divided into different zones. For example in Tempest there is Westwing, DamageAmp, Rocketroom and Shieldbelt.
The locations in teamsay aren`t the only occasion where these zones are used though, they also appear in UT`s respawn code. It`s very very likely, that your opponent spawns in a zone you are not in. In fact, if the distance between you and a player start in a different zone is higher than 750 unreal units he cannot spawn in your zone at all (As a reference, a player model is 78 unreal units tall, has a width of 38 unreal units and moves 400 unreal units per second).
There are some exceptions to this rule though:
1. You don`t spawn at the same player spawn point twice in a row.
2. If the player start is in line of sight to your opponent, you won`t spawn there.
3. Spawntelefragging is impossible in UT, but that`s covered by line of sight anyway.
So these are some basic rules if you want your opponent to spawn at a certain player start:
1. Stay in a different zone.
2. Stay out of sight.
3. Stay as far away as possible, at least 750 unreal units
If you are curious about the zones, you can look them up using UnrealEd. All you have to do is to load the map you want to see, for example DM-Tempest.unr and then you have to click on the last symbol in one of the windows, which is called "Zone/Portal".
"tempest from above the shieldroom in zoneview"
To put it in a nutshell, if you know the zones you can often predict where the guy you just killed respawns.