When a row in customers does not have a matching row in cust_drpepid, then the row will still appear, but all the columns form cust_drpepid will be NULL.
where ... and CUST_DRPEPID.CUSTID(+) = CUSTOMERS.CUSTID
That's an inner join, and it cancels the effect of the previous outer join. That is, if a customer did not have a matching row in cust_drpepid, then all the columns from cust_drpepid will be NULL, including the drpepid column, and that means the join condition to drpepid won't be TRUE. You probably need to make this an outer join:
and CUST_DRPEPID.DRPEPID = DRPEPID.DRPEPID
Since one join condition has a + sign after cust_drpepid, then all conditions involving cust_drpepid probably need a + sign somewhere.
and CUST_DRPEPID.DRPEPID = DRPEPID.DRPEPID (+)
Of course, since I can't re-create the problem, I can't tell if this solves it or not.
where COKEID.COKEID =CUST_COKEID.COKEID (+)