Mike,
That didn't answer my question. But let me first address your new post.
Regarding the "element" in the DNN Manifest, you understand incorrectly. Just because your site has other popups that work means nothing at all. It just means that your DNN Instance is set to allow them, that is all. Like I previously stated in my post:
You missed a property inside your DNN Manifest file: <supportsPopUps>True</supportsPopUps>
Without this property, your page will never "PopUp" [correctly, if at all].
If you do not "define" your ControlPage as "Supporting Popup", then it will not Popup correctly (if at all) because according to what DNN knows, this particular page is not a "Popup" page. Once defined at a "Supports Popup" page, then the EditURL() command will automatically return a URL formatted with the JavaScript that will "popup" your page. On a side note, I've always called the popup from server-side code, which means I needed to register a JavaScriptBlock to activate the "popup". You are trying to embed your code directly using JavaScript from what I can gather of your posts, although theoretically it shouldn't be a problem, I I have never done it that way.
Now, running from an "Installed Package" and running directly from your "Source Code" is different. In either case, you have to make sure your DNN Manifest is correct as I stated above. However, if you are running from "Source Code" and you have already initially added the Module, you need to EDIT the module definition as I explained in my previous post...add the new ControlPage you created because you added it after-the-fact and the DNN Instance has no knowledge of it, and be sure to activate the "Supports Popup" flag on the ControlPage in the Module Definition, otherwise as stated before it will not "popup" correctly if at all.
Lastly, as for your question "Does the module that I want to display in the PopUp have to actually be on the page that the hyperlink is that will launch the popup?"... I have no clue what you mean by this. When you are coding a Module, ALL your ControlPages are within the Module you are coding. If you are referring to accessing a completely separate Module, then you need to know that you cannot access ControlPages of other Modules. EditURL() and NavigateURL() does not support cross-module communication. Now the caveat to this statement is that if you want, you "could" create Direct SQL Queries against the DNN Core Tables to determine the ModuleID of another Module and then manually build a URL to which you can use in a ResponseRedirect() command. As for the SQL statements needed, only you can figure that out as these are your modules.