Script method to trim mesh objects
The simple way to solve your problem is to use a Boolean modifier and intersect with a really big box spanning z=-1..1 , but eventually you will want to do something to a mesh that isn't so simple.

You're going to want the bmesh module:

http://www.blender.org/documentation/blender_python_api_2_67_release/bmesh.html

It has access to the vertices, edges, and faces of the mesh with the ability to add, modify, and remove any of them.

For an example I'll include the code from http://web.purplefrog.com/~thoth/blender/python-cookbook/squish-mesh-axis.html :

import bmesh
import bpy


def stretchAxis(mesh, idx, tgt_min, tgt_max):
    """ Squish/stretch the vertex coordinates of a mesh so that their .co[idx] ranges from tgt_min to tgt_max. """
    bm = bmesh.new()
    bm.from_mesh(mesh)

    min = bm.verts[0].co[idx]
    max = min

    for v in bm.verts:
        val = v.co[idx]
        if (val&lt;min):
            min = val
        if (val &gt; max):
            max = val

    # remap co[idx] from min..max to tgt_min..tgt_max
    for v in bm.verts:
        old = v.co[idx]
        v.co[idx] = (old-min)*(tgt_max-tgt_min) / (max-min) +tgt_min
    bm.to_mesh(mesh)
    bm.free()

#
# squish or stretch all the selected meshes to a specific thickness along a
# specific axis.
#

idx = 2 # the z coordinate
for obj in bpy.context.scene.objects:
    if (obj.select):
        stretchAxis(obj.data, idx, 0, 1)
        obj.location[idx] = 1
        obj.scale[idx] = 1


Although this example does not alter the TOPOLOGY (faces and edges).  It only adjusts the position of the vertices.