Well, I see its been a while since anyone posted on this thread, but I thought I'd throw my two cents in anyway. First of all, I agree that printing in Linux is wretched, but PPD files generally do ease the process through the wizard in cups, and the system itself is actually very streamlined once you understand how the components get along. In my experience, the PPD's included in cups generally don't work; it seems like they are created using estimates from other PPD's but anyway they are mostly junk. Also, it no longer matters to cups where the PPD is (so long as its somewhere safe). If the driver you installed uses a PPD file, it *should* work in cups, though this isn't necessarily true, especially for non-postscript printers.
Anyway, here's the rundown:
CUPS is (as its name suggests) a common printing frontend. It takes a standard set of commands as input, regardless of the printer being used. It then takes these commands and sends them to the printer, in one of two ways:
1) using its own "driver" via the definitions in a PPD. This is what is happening when you use the "Add Printer" wizard.
2) as a "server," sending the commands to an external driver. This may or may not use PPD files, and can even (in theory at least) be a windows program via wine.
In the second case, which is what is happening with the samsung driver you described, and also with hplips, cups isn't actually handling the printer directly; It is merely a standardized interface for you and your programs to interact with. This is especially useful when using samba to share printers with windows machines.
Hope this helps