You can try creating an SDKCall for CBaseEntity::Touch( CBaseEntity* pOther ) which (I think) gets called when 2 entities touch each other.
Here is some code that should do that:
public void OnPluginStart()
Handle hGameConf = LoadGameConfigFile("sdkhooks.games");
if(hGameConf == INVALID_HANDLE)
SetFailState("GameConfigFile sdkhooks.games was not found");
PrepSDKCall_SetFromConf(hGameConf, SDKConf_Virtual, "Touch");
g_hSDK_Touch = EndPrepSDKCall();
if(g_hSDK_Touch == INVALID_HANDLE)
SetFailState("Unable to prepare virtual function CBaseEntity::Touch");
// later when you want to call it
SDKCall(g_hSDK_Touch, entity1, entity2);
This will just call the Touch function for the 2 entities which should simulate them "touching" (or at least the code that runs when they do), but it might not necessarily work the way you expect to or give you the effect you're looking for.