Kitwe,
Your example is only correct if the surface elevation is 0 feet. This is the same mistake which ac hoon made in answering the second question.
If the surface elevation is (to use the numbers from your own example) 2000', and you have the QNH correctly set, your altimeter will read 2000' when you are at 2000'. This is essential to flight safety - your altimeter must read the surface elevation when you are on the surface!
The rule of thumb you give for the altimeter error actually gives the error in the height, not the error in the altitude, if QNH is set.
FFF
--------------