Most of HP's newer printers have built-in memory that records the serial numbers of the last 3 cartriges used, as well as their ink levels. However, after the initial installation, they work by adding up how much ink you've used and subtracting it from the whole instead of just reading the level each time. That's why the printer doesn't recognize that the cartridge is full.
As Bob said, you can rotate between 3-4 cartridges to solve the problem. However, the same feat can be accomplished by placing a piece of tape over a couple of contacts, one at a time, on the back of the cartridge. The exact contacts vary by model, but they are usually the end ones, or where it looks like they form a point. You can experiment around with this to find out which ones your model uses, or try googling for it (though it took me around 350 results before I found the combo for mine).
This method fools the printer into thinking it is a different cartridge. Since the printer only stores the last three serial #s, the "fakes" will replace the serial number of the cartridge you have, making it usable again. However, the usage of tape may also damage the contacts over time, causing the cartridge to be unusable. (I haven't had a problem with it, but you may want to use acid-free tape to prevent the possible damage.)
Finally, there is an expiration date on the cartridge. After that date, the cartridge will cease to function...another anti-tampering method used by many printer manufacturers. To my knowledge, this cannot be bypassed.
NOTE: HP's policy is that refilled cartridges, including those professionally done, are not covered under the warrenty. In addition, any damage caused by using refilled cartridges is not covered.
Hope this helps,
P.S. Epson printers are even more difficult...many of their models require you to purchase a special "chip resetter" in order to refill the cartridge. At least you don't have to purchase anything with the HP...yet.