You just need to send a /ialfill #channel (basically: /who #channel) only one time after having joined the channel. You can set it up to do this only when you are opped in a channel -- where you're likely to need it.

Code:
On *:OP:#: {
  if ($opnick == $me) {
    if ($chan($chan).ial == $false)
      ialfill $chan
} } }

Again, after having done an /ialfill only once in a channel, your client should remain synchronized from then on and require no additional /who commands to obtain new address details. (things like gecos and nickserv account details can be more challenging depending on the server.)

Be careful not to allow your client to hammer the server with a dozen /ialfill's in a row, or you are likely to be disconnected for flooding (excessive flood). A more advanced script will make sure to space them out by 10 seconds apart from when the previous command finishes (End of /WHO numeric).


Well. At least I won lunch.
Good philosophy, see good in bad, I like!