What does "users" means in term of datablocks?
Blender organizes its data in datablocks. These are chunks of data (bits and bytes) that belong together, like all the settings of a material or the verts and faces of a mesh. When you give a mesh a material, this data isn't merged, but linked. You tell Blender: whenever you use mesh X, display it with material Y.

When a material is linked to something, it has a user. Another datablock that uses this material. When a material is used by a lot of objects or meshes, it has many users, displayed by the number to the right of it's name.

That way you can have a thousand objects all using the same mesh, which takes up less memory and enables you to edit one mesh and affect all linked objects simultaneously.

Fake users are a way to keep a material alive even if no object or mesh uses this material. If a datablock has no users, it will not be saved when you save the file in order to decrease file size. Think of it as some kind of garbage collection. However, the fake user takes care of this problem.

To illustrate that, I have resurrected Blender 2.28 because it has a view called OOPS schematic that shows the linking very well. Below, you have four objects all linking to one Suzanne mesh. I'm in the edit mode of the upper left Suzie and mess with her ears. Since all four objects use the same mesh, all objects are changed simultaneously.

One easily overlooked feature is copying lamps with altD. All the lamps then share the same data. This way you can change every lamp's brightness in one go. Think of a row of street lamps.