A traditional coil is one coil that fires more than one spark plug. It must be somewhat large and has to be cycled quite fast.
A coil pack is multiple coils - typically one for each spark plug handled by the pack - packaged into a single unit. e.g., there would be one pack for each side of the engine, with four coils inside it.
A coil-on-plug is a small coil that fires just one spark plug. It's called a COP because it's typically mounted on top of the spark plug, instead of remotely mounted like days of yore. GM's LS engines also use COPs, but they look more like a traditional coil and are mounted to the valve cover.
Having separate coils is good because they cycle much slower - more recharge time = cheaper construction and/or more spark - and can be much smaller.
Every gas engine uses coils to generate the spark (or magnetos, but let's not go there). Whether it's a single coil, packs, or COPs is up to the manufacturer and the packaging constraints.