Contract registration
Course editions should have a section to require a contract. Students and companies should enter personal details. This should be tied in with the group approval logic (preferably using callbacks).
Contracts should be a separate entity (i.e. not part of group membership, but with a relation to it) so that they are never deleted. Access control should be considered.