Force relationships from a node label X to a node label Y to have specific properties

Michael,
I think with triggers you can do it right in Neo4j. Read David Allen's response to a question on triggers: Triggers -- matching vs filtering on trigger criteria - #5 by neo4joe

I believe you can create a trigger which upon creation of a relationship of type RELTYPE will kick off arbitrary code that you write, which can check the nodes it connects to and based on their types you can make changes to any of the 3 objects connected. They are all within scope.
Joe