how to prevent dropping sysadmin user by another user in sql server
CREATE TRIGGER [DDL_PreventLoginDrop]ON ALL SERVER 
FOR DROP_LOGIN
AS 
DECLARE @LoginName NVARCHAR(128),@eventData XML

SET @eventData = EVENTDATA()            
SELECT @LoginName=@eventData.value('data(/EVENT_INSTANCE/ObjectName)[1]', 'SYSNAME')
IF @LoginName IN ('Login name that you want to protect')
  BEGIN
    PRINT 'Gotha, you nasty application!' 
    ROLLBACK;
  END
GO
ENABLE TRIGGER [DDL_PreventLoginDrop] ON ALL SERVER 


disclaimer:
Hopefully you'll agree that this answers your question "How to prevent dropping a login" but in no way is this a proper root cause fix. However, I know that there are some pretty nasty legacy applications where it's not possible to change the code... I must admit, this one just made me smile..