I assume you mean a program that isn't a chat client but is just a program designed to get stuff off fserves? The answer is "maybe". You can do a /ctcp version on the user and check the version reply. Some make it clear what they are, for example a downloader called "Bottler" clearly mentions that it is Bottler in its version reply. However others don't. Another program called "Blotter" will respond with an mIRC version reply if you /ctcp version it.
The only other thing I can think of is do something like send them a message like "If you are a real person, respond to this message" and if they don't... then assume it is some kinda downloading program.