This is possible in sql 2000 as well.
select 1 as id, '1st' as position into #data union all
select 1 as id, '2nd' as position union all
select 1 as id, '3rd' as position union all
select 1 as id, '4th' as position union all
select 1 as id, '5th' as position union all
select 2 as id, '1st' as position union all
select 2 as id, '2nd' as position union all
select 2 as id, '3rd' as position union all
select 2 as id, '4th' as position union all
select 2 as id, '5th' as position
select *
from #data d1
where position in (select top 3 position from #data d2 where d1.id = d2.id order by position)