I really can't help you much with general ASP.NET questions, there is a wealth of information available on the internet and in books that can help you understand how to achieve the results you are seeking and how to organize your work.
I will only point out that in mojoPortal, what I call a a module is the entry point to a feature, its the part the plugs into the page. It is a .ascx file, but it is special because it inherits from SiteModuleControl instead of directly from UserControl.
Normal .ascx files inherit from UserControl and can be used anywhere and even nested within other UserControls where mojoPortal SiteModuleControls should not be nested inside other SiteModule controls, but can have normal UserControls nested within them. UserControls are an easy way to encapsulate functionality that you want to re-use on more than one page.
Hope it helps,