The simplest solution is just to check whether the proposed range clashes with any of the existing ranges, and reject it if so. Something like
select id, startdate, enddate from ranges where (@startdate > startdate and @startdate < enddate) or (@enddate > startdate and @enddate < enddate)
@startdate and @enddate are parameters (pulled from the UI) for the proposed new range, startdate and enddate are column names. If any rows are returned then they are ranges which clash with the proposed new one, and you should construct an error message explaining what the clashes are.