Most errors are no problem. A user never sees them. Sometimes one of these errors leaves some amount of memory allocated, even if it is not needed any more. This is bad as RAM is a valuable resource and this resource is thus wasted. However Windows has no chance to detect these errors and must still assume that all this RAM is needed somehow.
Many programs use large libraries.
This makes it easy for companies to do cool programs as they don t have to invent the wheel again. Some of these libraries are very large and consume a notable amount of memory. All OLE libraries fall into this category. Unfortunately the memory is used, even if the program doesn t really need it. Sometimes a library is loaded, just to provide 2 or 3 functions.