Sorry the upload of the attachment failed for some reason. I have included it inline.
//Sender_script
default
{
state_entry()
{
llOwnerSay("Hello, default state."

;
llOwnerSay("Switching to transmitter state."

;
state transmitter;
}
on_rez(integer start_param)
{
state transmitter;
}
}
state transmitter
{
state_entry()
{
llOwnerSay("Transmitter state."

;
}
touch_start(integer total_number)
{
llOwnerSay("Transmitting 'abc' to box 2."

;
llMessageLinked(2,0,"abc",NULL_KEY);
llOwnerSay("Switching to receiver state."

;
state receiver;
}
}
state receiver
{
state_entry()
{
llOwnerSay("Receiver state."

;
}
link_message(integer sender_num, integer num, string str, key id)
{
if((sender_num == 2) && (num == 0))
{
llSay(0,str + " received from box " + (string)sender_num);
llSay(0,"Switching to transmitter state."

;
state transmitter;
}
}
}
// Receiver_script
default
{
state_entry()
{
llOwnerSay( "Hello, default state."

;
llOwnerSay( "Switching to receiver state."

;
state receiver;
}
on_rez(integer start_param)
{
state receiver;
}
}
state receiver
{
state_entry()
{
llOwnerSay( "Receiver state."

;
}
link_message(integer sender_num, integer num, string str, key id)
{
if((sender_num == 1) && (num == 0))
{
llOwnerSay(str + " received from box " + (string)sender_num);
llOwnerSay("Switching to transmitter state."

;
state transmitter;
}
}
}
state transmitter
{
state_entry()
{
llOwnerSay( "Transmitter state."

;
}
touch_start(integer total_number)
{
llOwnerSay( "Transmitting 'def' to box 1."

;
llMessageLinked(1,0,"def",NULL_KEY);
llOwnerSay( "Switching to receiver state."

;
state receiver;
}
}
Hope that helps