A User Variable can be made visible and editable for the end user in the portal's personalization form. This variable is for the user to input their personal data. An example of this data may be a contact phone number, first and last name or a photo or logo. Just about any type of personal data is allowed and can be applied to the personalized item.
A System Variable cannot be made visible to the end user in the portal's personalization form, thus its value can only be modified in the Administrator's / Softproofing page. A system variable is used behind the scenes to control templating layout or other element(s) that appear on the proof.
For example if your templating project is designed to use SKU value to determine what layout to use, SKU should be added as a system variable and is associated and triggered with template rules.