The following sets the [face texture][1] of face `0` for the active object:

	import bpy

	obj = bpy.context.object
	img = bpy.data.images.load("//example.png")
	obj.data.uv_textures.active.data[0].image = img

	# To make renderable:
	mat = bpy.data.materials.new("Example")
	mat.use_face_texture = True
	obj.data.materials.append(mat)

For cycles see: [Different image textures for one material (Cycles)][2].

[1]: http://wiki.blender.org/index.php/Doc:2.6/Manual/Textures/Mapping/UV/Applying_Image#Face_Textures
[2]: http://blender.stackexchange.com/q/2100/290