I must be doing something fundamentally wrong with the framework. I share this here because of the similar issues with the remote subnet mentioned above. Both of these apps share similar network speeds on different networks. One is T1 and the other is DSL.
Bill, there is really not much between SF and the connection. I would be curious to see what your results were if you just created an SqlConnection and used an SqlAdapter to populate a DataTable with the same query you are performing within SF.
The one thing that I know is that there is nothing between the BO and the DAL that would cause anything like this, so there has to be something going on within a query, sproc, or connection. It will have to be one of these things.
Now, if you can provide the database and a sample that reproduces this, I will be more than happy to give it a shot on this side to see if the results are reproducable. Performance issues are always frustrating, but I really can tell you that SF should have nothing to do with this part of the formula.
So some additional questions I would post are:
1. If you use the raw SqlConnection and SqlAdapter to fill a data table, what are the results?
2. What is your query and are you using an intrinsic SF method (i.e. Fill methods)?
3. If you are calling a sproc, what does your SPROC look like and how are you calling the sproc?
I know that the answer lies within these questions as the ONLY time I have ever experienced slowness in SQL (including through SF BOs) is when there was a legitimate query issue (unoptimized ... which I am good at writing those first

) or a permission or connection issue. I have also had issues in the field with a proxy and firewall (and a few times NAT translations) causing the issue. So my point is that the connection between the app and the server and SSMS were not taking the same path.
One more thought, if you are using SSMS it is most likely using named pipes, not TCPIP. If you are connecting through your application, you are most likely connection via TCPIP...thus you can experience differences in performance. Make sure that you have your TCPIP traffic on the server and between the two points setup correctly as well. This can cause slowness also.