I was just playing around with Bmesh and the knife tool.
If you are using Bmesh version of blender and if you want to make a straight cut with the knife tool:
Press K to activate knife
Click where you want to start the cut
Press C and make the cut
Right click to finish cutting
If you want to cut something in the middle, activate knife tool and hold down CTRL. The knife cursor will snap to the center of an edge. Even if there is no vertex there.