Adding to kenats response - if you have an assemby that has several known positions then you may be best using family of assemblies. You can then set constraints to give you the positions you require.
If the assembly is required to adjust to any position, as in Kenat's hydraulic piston example, then use adjustable.
Even if you use families of assemblies, you can always make one of the members adjustable by removing some constraints for that member.
I have done this with hydraulic cylinders by having 3 family members - Fully Extended, Fully Retracted and Adjustable.
bc.
2.4GHz Core2 Quad, 4GB RAM,
Quadro FX4600.