They are differentiated by the people who use them. User documentation explains how to use the software to the end-user. Reference documentation contains specific references, descriptions, error messages, tips, and other keyed information for technical people and users.
Software documentation explains how a program works.
User and reference documentation explains what a program does and how to use it. Writing the documentation is the final step in the system development life cycle, but ideally it is a process that continues throughout development. Even though the final details cannot be written until the programming is finished, waiting until the end of the project to begin writing often results in poor documentation. Good documentation is no accident. It is the result of careful planning and development, just like the software itself.