In my VB6 application I open other EXE files. My application runs without any UAC prompt, but I have an EXE which checks for updates to software. This prompts the UAC prompt
The UAC prompt is used when a privilege elevation is needed. Your own VB6 app doesn't need it, and therefore the default behavior is OK. An updater would need the privilege, so its author marked the executable as requiring it. Windows spots that and puts up the UAC prompt.
Now depending on the exact Windows version and security updates, that privilege remains available for a while, even to other (child) processes. This may prevent duplicate UAC prompts.