<p>Code below is not working as expected to detect if it is in design mode (VS.Net 2003 - Control Library):</p>

<p>if (this.Site != null &amp;&amp; this.Site.DesignMode == true) <br>
{<br>
  // Design Mode<br>
}<br>
else<br>
{<br>
  // Run-time<br>
}<br></p>

<p>It is used in a complex user control, deriving from another user control and including other user controls on it.<br>
Is there another way to detect design time in a VS.NET 2003 or what is the problem with the code above? </p>

I guess you could use HttpContext.Current == null as described at
http://west-wind.com/weblog/posts/189.aspx
In .Net 2.0 there's Control.DesignMode (
http://msdn.microsoft.com/en-us/library/system.web.ui.control.designmode.aspx
). I guess you have a good reasons to stay on VS 2003 though, so upgrading might not be an option for you.
Update
If you are doing Winforms, Component.DesignMode (
http://msdn.microsoft.com/en-us/library/system.componentmodel.component.designmode.aspx
) is the right way to check. Though, if this.Site.DesignMode doesn't work properly, Component.DesignMode might not work as well, as it does exactly the check you are doing (Site != null && Site.DesignMode).
This might be a long shot, but are you sure that your base control does not override the Site property?