You may try to calculate exact player's shot target using his Angles (i.e. direction of aim), and enemy's position and metrics like Radius and Height. This will be complicated however.
I.e., assuming player attacks enemy using "line attack" method (like all the instant shot weapons work). An AimLineAttack is usually called to get the possible target for this attack. IIRC it is 'linetarget' variable that is being set to reference to that target (an Entity). Then, you do some calculations like was mentioned: use player's Angles to know direction of view, get vector, find a point of intersection with enemy's bound box etc.