Now that all program structures and member types have been created, you need to set your program constraints. This allows you to specify exactly which member type is allowed in which program structure. Go to the
Setup->Program Settings menu, and for each program structure, click on the Manage Program Constraints submit button. The next page contains a list of all member types, and looks like:

Every time a member is added to the downlines, the software checks the program constraints just before creating a downline position for the member. The member will only be added to the downlines if the program constraints allow it. The program constraints override all other settings, and are the last check before a downline position is created. In other words, even if the Member Settings state a new member will be added to a program structure, the member will only be added if the program constraints allow it.
For example, say you have Free and Gold member types, and a separate program structure for each. You would not allow Free members any access to the Gold program structure. When a Gold member joins under a Free member, since Free members are not allowed in the Gold program structure, the Free member will not appear anywhere in the Gold sponsor's downline.
You can also allow access to a program structure, only if it's the member's default program structure. For example, a member could first join and not be allowed access to the program structure, but once they have completed the needed requirements, their default program structure could change, and they'd be given access.
In other words, say you have two matrixes, and members advance to the second matrix after filling the first. You would only give the member type access to the second matrix if it's their default program type. This way, the member would always remain in the first matrix, then once filled, their default program structure would change to the second matrix, allowing them to begin filling it.