You could try casting a ray from a specific angle, and see where on the mesh the ray intersects.
Check the mathutils library for the function intersect_ray_tri
mathutils.geometry.intersect_ray_tri(v1, v2, v3, ray, orig, clip=True)
Blender API intersect_ray_tri Function
Here is some code I found googling:
http://blenderartists.org/forum/archive/index.php/t-154521.html
def CheckIntersections(mesh):
intersects = 0
obj = Blender.Object.GetSelected()
origin = Blender.Mathutils.Vector(obj[0].getLocation("worldspace"))
ray = Blender.Mathutils.Vector(0,0,20)
print "Shooting ray from ",origin," towards ",ray
for f in mesh.faces: # for each face
v = f.verts # get vertices
intersectionpoint = Blender.Mathutils.Intersect(v[0].co,v[1].co,v[2].co,ray,origin,1)
if intersectionpoint != None:
print "Ray intersects face at ", intersectionpoint
intersects = intersects + 1
If you know the vertices of the object you want to position the 3D cursor on, you can select those verticies (1 or more) and snap cursor to selected (with more selected, it will go in the center (average) of the selected vertices).