I been working in such organization since past 11 years. It works marvelously.
There are like 25 applications at front-end, all web applications, they all share the same database.
When To Have A Different Database
You need a different database when you have different overall business rules. For example if company is different. Each company has its own processes. They don't differ much usually between departments of the company. A different company is a different beast totally, run even same type of business differently.
Different SBU In Same Company
Over the years we did start using a different database but only when we have to put a special case in our business logic at enough places. It was for a different strategic unit. Think SBUs - Strategic Business Units.
The way to distinguish is when the unit has its own budget, do its own hiring and may even have its own goals which may even be in conflict with other SBUs of the same company. An example is a newspaper company in Pakistan called Jang Group of Newspapers. It from its start in 1940s publish 2 different newspapers: Dawn and Jang. First one is in English, second in urdu. The 2 SBUs have different target audience and therefore do business differently.
One unit may well be in profit and other in loss. Also, for an employee moving from one SBU to another is 90% as difficult as moving to another company altogether. These are 2 more points to distinguish between SBUs in same company, and therefore to know when a different database is needed.
Consider a software house. It dont make support softwares. It make one software for one client, sale it to it, then move on to making another different software for another client. Repeat clients may or may not come and they dont depend on repeat business. They move from transaction to transaction. Obviously the software house will use a separate database for each client.
Different Law -> Different Business Process -> Different Business Logic
Consider an american company that also do business in france. Laws are different so business processes also have to be different. If they are different enough then they may decide to use a different database for each country.
Special Case In A Function -> Separate Function -> Separate Container of Functions (Object, Component, Header File etc) -> Separate Front-End -> Separate Database
As in all things in software development it comes downs to how many things a person can keep in mind at a time. The smallest unit of business logic is in a function. Now consider a function that to program it a programmer has to keep 4 things in mind. If only one of them differ between the two countries then an average programmer can handle it, he now keep 5 things in mind. If instead of one there are three things that differ between the 2 countries then the programmer now have to keep 7 things in mind. Very few programmers can do that. So he will just make a separate function. As those separate functions and therefore their containers (objects, components, header files etc) pile up at some point it all get so complicated that a different front-end (website, say) makes sense. The next logical step is a different database altogether.