I was able to provide a solution to this issue. I made my customer information table to be versioned (Move Edits To Base). Then I use a many to many relationship class to join this table to my Service Locations. Now I can replace my customer info table every night. I force the objectid to be my static key from CIS system. :D
Here's the SQL to fill my customer info table (SERVICEPOINT).
[i]INSERT INTO designer.SERVICEPOINT(OBJECTID, ServicePointID, CustomerName, MailingAddress, ServiceAddress, RatePlanCode, AccountNumber, MeterNumber, RouteNumber, MeterReadOrder, FranchiseCity,LABEL_ADDRESS1,LABEL_ADDRESS2,LABEL_CITY_ST_ZIP)
SELECT service_point_id, service_point_id, [NAME], mailing_address, service_address, rate_plan_code, account_number, meter_number, route_number, meter_read_order, franchise_city, label_address1, label_address2, label_city_st_zip
I have seen some problems with this approach but have been able to remedy them by removing all rows from the a and d delta tables for SERVICEPOINT since this table should never be changed by SDE. I'm sorry but I can't remember exactly what the problems were. Its been working flawlessly for months now.