If you need to do something with the data that was sent then just make a new alias. This is what I used to do:

Code:
alias send {
  if ($sock(blabla)) { 
    sockwrite -n blabla $1- 
    if ($window(@debug)) { aline @debug >>> $1- }
  }
}


Then you just call /send <data>

This behaviour is very similar as to why /sockwrite won't work directly after /sockopen and why you have to wait for the on SOCKOPEN event. mIRC is a single-threaded application and doesn't begin to process the socket messages until it has finished processing the current script.

I'm not even sure how/why it used to work as you describe.