Since you have two shapefiles (one contains median point for each client and another contains source position points), Generate Near Table GP tool might be a good candidate for finding out the distance from each median point to the points around. The only thing left is to iterate over each client's median point without taking into considerations others. We have to select and use only one client per iteration. For me, a Python solution is easier than ModelBuilder based one.
This code should work for 10.0 unless I have missed something. You would need to create a script tool and update paths to the data. You can save the code below in a .py file and then use any text editor to edit the file).
To make it easier to understand the workflow, I've attached a picture. Red points are in one feature class and represent median points, blacks and greens represent source points in another feature class (each have a field ClientID, symbology is based on ClientID, labels are just ObjectIDs).

import arcpy
arcpy.env.workspace = r"C:\GIS\Temp\test.gdb"
arcpy.env.overwriteOutput = True
source_pnts = r"C:\GIS\Temp\test.gdb\source_pnts"
median_pnts = r"C:\GIS\Temp\test.gdb\median_pnts"
iter_neartable = r"NearTableTemp"
sum_neartable = r"NearTableAllClients"
fieldname = "ClientID"
search_cursor = arcpy.SearchCursor(median_pnts,"", "", fieldname)
counter = 0
for row in search_cursor:
#print row.ClientID
median_pnts_lyr = arcpy.MakeFeatureLayer_management(median_pnts,"OneClientOnlyMedian","""ClientID = {}""".format(row.getValue(fieldname)))
print int(arcpy.GetCount_management(median_pnts_lyr).getOutput(0))
source_pnts_lyr = arcpy.MakeFeatureLayer_management(source_pnts,"OneClientOnlySource","""ClientID = {}""".format(row.getValue(fieldname)))
print int(arcpy.GetCount_management(source_pnts_lyr).getOutput(0))
iteration_table = arcpy.GenerateNearTable_analysis(median_pnts_lyr,source_pnts_lyr,iter_neartable, "#","NO_LOCATION","NO_ANGLE","ALL","0","PLANAR")
if counter == 0:
arcpy.CopyRows_management(iteration_table,sum_neartable)
arcpy.TruncateTable_management(sum_neartable)
arcpy.Append_management(iteration_table,sum_neartable,"NO_TEST")
counter = counter + 1
else:
arcpy.Append_management(iteration_table,sum_neartable,"NO_TEST")