I noticed a lot of questions about Business Partner and why it is used with reference to CRM alone while the transaction system uses 0customer etc.
The transaction systems namely R/3 are geared to a particular customer type and are built usually to receive / sell goods to a customer - not much more that that - this is why 0customer and 0vendor are prominent in R/3 systems.
However when it comes to CRM Systems - there are many classes of customers - Internal customers -those who consume the product internally , service teams , end users , technicians etc and this list depends from company to company and instead of creating a huge lot of new tables for the same a single object called business partner was created in order to have a single definition of a customer with a customer classification which helped classify the same. This makes the system very easy to design since every time a new customer class is added no additional steps need to be taken. This is also the reason why CRM is usually the only place you hear about Business Partner - ( And Solution Manager - of course )