In an object with OWD as private and sharing rules are enabled to provide Read/Write access of the records to some users. Now I want these users to have delete access too to these records. Since delete access cannot be provided by sharing rules, the only other option seemed to be providing the 'Modify All' permission to the users. Org standards demand that 'Modify All' shall be provided only to Admin users. Please tell me if there is any other way to provide access to these users to delete any record under that object. Thanks in advance.
Finally achieved this by manipulating the ownership of the record. Wrote a trigger to change the ownership of the record from the created user to a queue. This queue has all those users who should have the capability to delete any records. Different queues are the owners of different records based on certain factors. Hence unnecessary delete privileges are not given for any user to a record. This could not have been possible by using 'Modify All' since all the users share the same profile and permission set.