Since you have two controls on the page it will render them both. The if-check you create, only determines whether it’s included in the output. The easiest way to prevent this is to change your code like this:
<div>
<units:MyUserControl runat="server" SomeSetting="<%= Something %>" />
</div>
EDIT: Answer to edit in the original post:
<div>
<% if(Something) { %>
<div id="someUniqueMarkup">
This markup should not be output if Something==true.
<asp:placeholder id="phItemInDiv" runat="server" />
</div>
<% }
else { %>
<asp:placeholder id="phItemOutsideDiv" runat="server" />
<% } %>
</div>
MyUserControl ctrl = (MyUserControl)LoadControl("/pathtousercontrol.ascx")
if (something){
phItemInDiv.Controls.Add(ctrl);
}
else{
phItemOutsideDiv.Controls.Add(ctrl);
}
This way you will only have the user control emitted (and loaded) if Something is true