Usability for Nerds/Software/Default values

Whenever the user has to fill out a text field in a form or make a selection from a list, the system may preset it to a default value so that the user doesn't have to do anything if this value is acceptable. There are several ways in which the software can determine a default value:
 * 1) Always set it to the same value
 * 2) Set it to the same value as the current user entered last time
 * 3) Set it to the value used most often
 * 4) Try to guess the value from something else the user has entered

Method 3 and 4 can be quite confusing because the default value is possibly not always the same and it may change in a way that is not transparent to the user.