As other answers state, you should create a custom field for this functionality. However, instead of implementing the Browse functionality yourself, you should take a look at the AssetUrlSelector control found in the Microsoft.SharePoint.Publishing.WebControls namespace (you can have a look at the control using the .NET Reflector tool).
When implementing the custom field, you could add the AssetUrlSelector to the custom UserControl and making it visible when the filed is in editing mode. Below is shown an example of the approach:
<%@ Control Language="C#" %>
<%@ Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="publishing" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID="CustomFieldControl" runat="server">
<Template>
<publishing:AssetUrlSelector id="CustomUrlSelector" runat="server" />
</Template>
</SharePoint:RenderingTemplate>
The example above only shows how to add the control to the custom field. Make sure that you hide the AssetUrlSelector control when not in editing mode.