The diners are responsible to say they want separate checks, and this should be done prior to any ordering. While some servers may ask large parties if they'll want separate checks, if it's two people, that would be treated as an insult to many couples.
It can also be difficult, along with time consuming, for a server to separate out a check at the end of a service. If the people at the table don't remember what they ordered and don't want to take the time to figure it out themselves, it shouldn't be expected for the server to do it for you.
It is always in the interest of someone who is owed money to ensure that the accounting is done correctly. If they fail to, they're apt to not get paid properly. (Who's responsible for adding up the total at the grocery store?)
In my experience, around here, if I'm in a group of more than about three or so, after the entrees have been delivered but before bringing the check, the server will ask at some point (usually during drink refills) "Is this all on one check, or separate?" Based on some of the receipts I've gotten, my understanding is that the register systems used by modern restaurants require the server to enter the ticket, separated by guest, at the time the order is initially placed (this process is probably also what communicates the order to the kitchen). Then when it comes time to print the checks, it is trivial to put "Guest 1" and "Guest 2" on one ticket and "Guest 3" on another.
I'm usually pretty forgiving about service mistakes, but botching the billing process is a sure-fire way to be dropped from our restaurant rotation. It's such a basic function of a restaurant that there are enough of them that can get it right, so there's no need to tolerate the ones that can't.