Anyone who has access to a contract can share it with others. Even users with the lowest level of permission ("Viewer") on a contract can share it.
To share a contract, open the Manage Users Panel at upper right of contract screen and click the "add user" icon:
NOTE: Users with higher permission levels have more sharing options. To learn about how user roles and permissions are assigned and managed, click here.