You can use an IFrame to run your own custom application within your DNN site. If you want to pass DNN information to the application, you can do so by setting parameters in the URL.
For example, you could set the source of the IFrame as follows. Note that your actual application's page is passed as a parameter:
http://www.mysite.com/welcome/UserRedirect.aspx?page=www.mysite.com/app/Default.aspx
Then have the UserRedirect.aspx page look something like:
<%@ Page Language="VB" %>
<% Response.Redirect("http://www.mysite.com/app/Default.aspx" & "?UserID=" & DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo.UserID & "&DisplayName=" & DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo.DisplayName) %>
To retrieve the UserID and DisplayName parameters in your custom application, you could use something like this C# code:
int userCode = Int32.Parse(Request.QueryString["UserCode"]);
Then you could do whatever you want with the user ID.
I think this approach does have some security concerns, since one could spoof the URL. But, that's up to you to decide on the risk. There was some talk of a newer version of IFrame having more capabiilties in this regard -- I'm not sure what happened to that.
If you just want to see what an IFrame application running inside DNN can look like, try
http://www.beamommy.com/welcome/BabyTools/TemperatureCorrector/tabid/60/Default.aspx