Assuming that break times are always between 11:00 AM and 1:00 PM, you could do something like below. Basically, use a CTE to fabricate an extra "BreakTime" column based on some logic.
To make the query work with your data which is shown in 12-hour time, I made the (poor) assumptions in the logic that anything between 11:00 and 13:00, or 0:00 and 1:00 are break times. In your real system, you should use 24-hour times so you don't have the AM/PM ambiguity. Furthermore, I'm not sure you need 2 separate columns for date and time.
But anyway, since this is just sample code to show the query, I left it alone.
Here's a complete example, with a test table and your data:
* Updated to use derived table for SQL 2000 instead of CTE *
CREATE TABLE [dbo].[MyTable]
(
ID nvarchar(5),
MyDate date,
MyTime time
)
insert into MyTable (ID, MyDate, MyTime) values ('001', '12/01/2011', '08:00:00')
insert into MyTable (ID, MyDate, MyTime) values ('001', '12/01/2011', '08:30:00')
insert into MyTable (ID, MyDate, MyTime) values ('001', '12/01/2011', '11:30:00')
insert into MyTable (ID, MyDate, MyTime) values ('001', '12/01/2011', '12:35:00')
insert into MyTable (ID, MyDate, MyTime) values ('001', '12/01/2011', '03:30:00')
insert into MyTable (ID, MyDate, MyTime) values ('001', '12/01/2011', '04:30:00')
insert into MyTable (ID, MyDate, MyTime) values ('002', '12/01/2011', '08:30:00')
insert into MyTable (ID, MyDate, MyTime) values ('002', '12/01/2011', '09:30:00')
select
ID,
MyDate,
min(MyTime) as intime,
max(MyTime) as outtime,
min(BreakTime) as break_intime,
max(BreakTime) as break_outtime
FROM
(
SELECT *,
CASE
WHEN (MyTime > '11:00:00' and MyTime < '13:00:00') THEN MyTime
WHEN (MyTime > '0:00:00' and MyTime < '1:00:00') THEN MyTime
ELSE null
END AS BreakTime
from MyTable
) as DerivedTable
group by ID, MyDate
And the output:
ID MyDate intime outtime break_intime break_outtime
001 2011-12-01 03:30:00.0000000 12:35:00.0000000 11:30:00.0000000 12:35:00.0000000
002 2011-12-01 08:30:00.0000000 09:30:00.0000000 NULL NULL