I figured it out - if when creating reports, you add tables to your report using Windows Authentication, and then in your app, try to connect using SQL authentication (calling SetDatabaseLogon, and loop through all of the tables and supreports setting TableLogonInfo) you will be prompted for logon info at when you run the report.
The only way I found to fix it is to leave VS (very important because otherwise it seems to cache the connection), go back into VS, create a new report and when adding tables to the database, use SQL authentication. Then it works like a charm!!!!
What sucks about this issue is that it is hidden from you if you run it on your development machine because you have Windows Authenticated access, or else you wouldnt be able to add the tables to the report! So it runs great on your machine, but once distributed, the users get prompted for logon data when the report is run.