How to make [return] behave as a [return] within Messages, Skype…
Create a file (on a standard install, the directory KeyBindings doesn't exist):

mkdir ~/Library/KeyBindings


containing the following 2 remappings:

$ cat &gt;~/Library/KeyBindings/DefaultKeyBinding.dict &lt;&lt;end_of_file
/* my keybindings */
{
        "\U000d" = ("insertLineBreak:") ;
        "@\U000d" = ("insertNewline:") ;
}
end_of_file


@ means cmd in this dictionary,
\U000d means Unicode of the standard return (== 0x0d).

Restart Messages and from now on,


return will put a real return,
cmd+return will send the message.




Drawback

This solution is applied to any application using ~/Library/KeyBindings/DefaultKeyBinding.dict.

Advantage

This solution is applied to any application which does a non natural use
of the return in a text area.
Most notably I now have a Skype with which I don't send any more prematurely truncated messages.