I didn't feel like digging up the e-mail but below is the e-mail I sent to sqlwish@microsoft.com.  I'd be very curious to see if anyone can easily reproduce this bug, and if it is in fact a bug.  If so, it's kind of scary because this is related to the core update of the actual data.

Original E-Mail:

I just across some very odd behavior.  I have an archived field which is a boolean, it basically indicates whether or not to show the record on the screen to the user.  I was getting complaints that they would archive a record, but it would keep reappearing.  Part of the way I had to design this was to constantly call a certain stored procedure.  I.e., for 15 minutes I'll continue to update that record so it always has the latest information.  That isn't relevant to the bug, but is why they would keep seeing it or why the update statement is called repeatedly.
 
The table definition is attached, and the stored procedure.  However, to test I basically reset all of the records to archive = 1, I added code to see if it was branching into the insert statement or to the update.  It was branching to the update statement.  This turned out to be very weird because I removed every possible update of the isarchived field, I had it commented at first but it was still updating so I removed every possible place.  The only place it was in the insert statement, wherhe I know had nothing to do with this because a new record wasn't being inserted and I could see my record being updated based on a debug select statement returning the id that was updated and my systemdateupdated column would change.
 
Anyway, I narrowed it down and removed and commented out of the update statement the column before (MessageText) and after (ExternalDateReceived) from the update statement.  Boom, my isarchived no longer was being reset back to zero, it kept it's value of 1.  Then, the problem was I did want to update these fields even though I didn't really have to, so I tried only updating one or the other, still happen.  So, I said what about if I move these two columns completely into their own update statement.  Would it still flip it back to zero?  Nope, for some reason when moved to their own update statement, it doesn't modify the isarchived.
 
I have no triggers or any other odd stuff on the table.
 
Here is what I used to test:
 
SELECT * FROM TEXTMESSAGES
 
UPDATE TEXTMESSAGES SET ISARCHIVED = 1
 
exec [dbo].[TextMessagesCometTracker_Insert] @TEXTMESSAGETYPEID = 2, @PREFIX = 'MB', @CONTROLNUMBER = 118718, @SUFFIX = '1', @TRUCKID = 'JIMDR', @DRIVERID = '', @EQUIPMENTNUMBER = '', @CHASSISNUMBER = '', @SEALNUMBER = '', @BILLOFLADINGNUMBER = '', @CONTAINERTYPE = default, @PIECES = 0, @WEIGHT = 0.00, @USER1 = default, @USER2 = default, @USER3 = default, @USER4 = default, @EMPTYGOOD = 0, @LOTROW = '', @HOURSDELAYED = 0, @USERCOMMENTS = '', @DISPATCHSTATUS = '', @CREATEDISPATCH = 0, @EXTERNALSTATUS = 'ACCEPT', @CURRENTCITY = 'WHITTIER', @CURRENTSTATE = 'CA', @MESSAGETEXT = 'SW ~ MB-118718-1 ~ Cont#: GESU426861 ~ SS: MAEU ~ BL#:  ~ LFD: N/A ~ Appt: 1/2/2007 1:30 PM ~ Appt #: A244277 ~ Container Pickup: BNSF LOS A, 3770 E WASHINGTON BLVD, COMMERCE ~ Lot/Loc: 1/6 ~ Remarks: CALL STEVE WHEN YOU GET TO THE CUSTOMER A LUMPER SERVI', @ISARCHIVED = 0, @EXTERNALDATERECEIVED = 'Jan  4 2007  1:53PM', @COMETTRACKERORDERID = '12', @COMETTRACKERORDERNUM = 'MB-118718-1', @COMETTRACKERORDERUSERID = '107238', @COMETTRACKERORDERUSERNUM = 'JIMDR', @COMETTRACKERORDERUSERNAME = 'JIM DRIVER', @COMETTRACKERORDERSTATUSID = '51', @COMETTRACKERORDERSTATUS = 'ACCEPT', @COMETTRACKERORDERGPSID = '6166213937', @COMETTRACKERORDERPHONEDATAID = '0'
 
To test, I would make my modications to the stored procedure, update all records to isarchived = 1, run the select to confirm they all are 1, then run the insert stored procedure, and even though nowhere in the code as I said does it update that column, I would then run the seelct * from textmessages and see one value that it updated the other columns had isarchived reset back to 0.
 
Oh yeah, I wish this bug wasn't in there.  : )
 
SELECT @@VERSION:
 
Microsoft SQL Server  2000 - 8.00.194 (Intel X86)   Aug  6 2000 00:57:48   Copyright (c) 1988-2000 Microsoft Corporation  Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
 
(Note, you can see the serializable in the select because I thought it could be a concurrency issue in my service.)
 
Also, please don't reply asking for a ton of info before you try to duplicate this with the info and attachment given.
 

BELOW TEXT IN A TEXT FILE ATTACHMENT

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[RefTextMessages69]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[TextMessagesCometTracker] DROP CONSTRAINT RefTextMessages69
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[RefTextMessages70]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[TextMessagesQualcomm] DROP CONSTRAINT RefTextMessages70
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TextMessages]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TextMessages]
GO
CREATE TABLE [dbo].[TextMessages] (
 [TextMessageID] [int] IDENTITY (1, 1) NOT NULL ,
 [TextMessageTypeID] [tinyint] NOT NULL ,
 [Prefix] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [ControlNumber] [int] NULL ,
 [Suffix] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [InternalShortID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [TruckID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [DriverID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [EquipmentNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [ChassisNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [SealNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [BillofLadingNumber] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [ContainerType] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [Pieces] [int] NULL ,
 [Weight] [decimal](13, 4) NULL ,
 [User1] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [User2] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [User3] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [User4] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [EmptyGood] [bit] NULL ,
 [LotRow] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [HoursDelayed] [decimal](18, 2) NOT NULL ,
 [UserComments] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [DispatchStatus] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [CreateDispatch] [bit] NOT NULL ,
 [ExternalStatus] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [CurrentCity] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [CurrentState] [varchar] (255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [MessageText] [varchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
 [IsArchived] [bit] NOT NULL ,
 [ExternalDateReceived] [smalldatetime] NOT NULL ,
 [SystemDateInserted] [smalldatetime] NOT NULL ,
 [SystemDateUpdated] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TextMessages] WITH NOCHECK ADD
 CONSTRAINT [PK_TEXTMESSAGES] PRIMARY KEY  CLUSTERED
 (
  [TextMessageID]
 )  ON [PRIMARY]
GO
ALTER TABLE [dbo].[TextMessages] WITH NOCHECK ADD
 CONSTRAINT [DF__TextMessa__Hours__691E3D2D] DEFAULT (0) FOR [HoursDelayed],
 CONSTRAINT [DF__TextMessa__Creat__6A126166] DEFAULT (0) FOR [CreateDispatch],
 CONSTRAINT [DF__TextMessa__IsArc__6B06859F] DEFAULT (0) FOR [IsArchived],
 CONSTRAINT [DF__TextMessa__Exter__6BFAA9D8] DEFAULT (getdate()) FOR [ExternalDateReceived],
 CONSTRAINT [DF__TextMessa__Syste__6CEECE11] DEFAULT (getdate()) FOR [SystemDateInserted],
 CONSTRAINT [DF__TextMessa__Syste__6DE2F24A] DEFAULT (getdate()) FOR [SystemDateUpdated]
GO
ALTER TABLE [dbo].[TextMessages] ADD
 CONSTRAINT [RefTextMessageTypes63] FOREIGN KEY
 (
  [TextMessageTypeID]
 ) REFERENCES [dbo].[TextMessageTypes] (
  [TextMessageTypeID]
 )
GO

DROP PROCEDURE TextMessagesCometTracker_Insert
GO
CREATE PROCEDURE TextMessagesCometTracker_Insert
 @TEXTMESSAGETYPEID TINYINT, -- BEGIN TEXT MESSAGES
 @PREFIX VARCHAR(50) = NULL,
 @CONTROLNUMBER INT = NULL,
 @SUFFIX VARCHAR(50) = NULL,
 @TRUCKID VARCHAR(50) = NULL,
 @DRIVERID VARCHAR(50) = NULL,
 @EQUIPMENTNUMBER VARCHAR(50) = NULL,
 @CHASSISNUMBER VARCHAR(50) = NULL,
 @SEALNUMBER VARCHAR(50) = NULL,
 @BILLOFLADINGNUMBER VARCHAR(50) = NULL,
 @CONTAINERTYPE VARCHAR(50) = NULL,
 @PIECES INT = NULL,
 @WEIGHT DECIMAL(18, 2) = NULL,
 @USER1 VARCHAR(50) = NULL,
 @USER2 VARCHAR(50) = NULL,
 @USER3 VARCHAR(50) = NULL,
 @USER4 VARCHAR(50) = NULL,
 @EMPTYGOOD BIT = NULL,
 @LOTROW VARCHAR(50) = NULL,
 @HOURSDELAYED DECIMAL(18, 2) = 0,
 @USERCOMMENTS VARCHAR(255) = NULL,
 @DISPATCHSTATUS VARCHAR(50) = NULL,
 @CREATEDISPATCH BIT,
 @EXTERNALSTATUS VARCHAR(50) = NULL,
 @CURRENTCITY VARCHAR(255) = NULL,
 @CURRENTSTATE VARCHAR(255) = NULL,
 @MESSAGETEXT VARCHAR(4000) = NULL,
 @ISARCHIVED BIT = 0,
 @EXTERNALDATERECEIVED SMALLDATETIME, -- END TEXT MESSAGES
 @COMETTRACKERORDERID VARCHAR(50) = NULL, -- BEGIN TEXT MESSAGES COMET TRACKER
 @COMETTRACKERORDERNUM VARCHAR(50) = NULL,
 @COMETTRACKERORDERUSERID VARCHAR(50) = NULL,
 @COMETTRACKERORDERUSERNUM VARCHAR(50) = NULL,
 @COMETTRACKERORDERUSERNAME VARCHAR(50) = NULL,
 @COMETTRACKERORDERSTATUSID VARCHAR(50) = NULL,
 @COMETTRACKERORDERSTATUS VARCHAR(50) = NULL,
 @COMETTRACKERORDERGPSID VARCHAR(50) = NULL,
 @COMETTRACKERORDERPHONEDATAID VARCHAR(50) = NULL -- END TEXT MESSAGES COMET TRACKER
AS
SET NOCOUNT ON
DECLARE @TEXTMESSAGEID INT
DECLARE @INTERNALSHORTID VARCHAR(50)
IF (SELECT TOP 1 TEXTMESSAGEEXPORTIDTYPEID FROM TEXTMESSAGEUNIVERSE) = 1 -- DRIVER ID
BEGIN
 SET @INTERNALSHORTID = @DRIVERID
END
ELSE
BEGIN
 SET @INTERNALSHORTID = @TRUCKID
END
IF NOT EXISTS (SELECT TOP 1 'T' FROM TEXTMESSAGES TM (SERIALIZABLE) INNER JOIN TEXTMESSAGESCOMETTRACKER TMC (SERIALIZABLE) ON TM.TEXTMESSAGEID = TMC.TEXTMESSAGEID WHERE CAST(TMC.ORDERID AS INT) = CAST(@COMETTRACKERORDERID AS INT) AND CAST(TMC.ORDERSTATUSID AS INT) = CAST(@COMETTRACKERORDERSTATUSID AS INT))
BEGIN
 INSERT INTO TEXTMESSAGES
 (TEXTMESSAGETYPEID, PREFIX, CONTROLNUMBER, SUFFIX, INTERNALSHORTID, TRUCKID, DRIVERID, EQUIPMENTNUMBER, CHASSISNUMBER, SEALNUMBER, BILLOFLADINGNUMBER, CONTAINERTYPE,
  PIECES, WEIGHT, USER1, USER2, USER3, USER4, EMPTYGOOD, LOTROW, HOURSDELAYED, USERCOMMENTS, DISPATCHSTATUS, CREATEDISPATCH, EXTERNALSTATUS,
  CURRENTCITY, CURRENTSTATE, MESSAGETEXT, ISARCHIVED, EXTERNALDATERECEIVED, SYSTEMDATEINSERTED, SYSTEMDATEUPDATED)
 VALUES
 (@TEXTMESSAGETYPEID, @PREFIX, @CONTROLNUMBER, @SUFFIX, @INTERNALSHORTID, @TRUCKID, @DRIVERID, @EQUIPMENTNUMBER, @CHASSISNUMBER, @SEALNUMBER, @BILLOFLADINGNUMBER, @CONTAINERTYPE,
  @PIECES, @WEIGHT, @USER1, @USER2, @USER3, @USER4, @EMPTYGOOD, @LOTROW, @HOURSDELAYED, @USERCOMMENTS, @DISPATCHSTATUS, @CREATEDISPATCH, @EXTERNALSTATUS,
  @CURRENTCITY, @CURRENTSTATE, @MESSAGETEXT, @ISARCHIVED, @EXTERNALDATERECEIVED, GETDATE(), GETDATE())
 
 SET @TEXTMESSAGEID = @@IDENTITY
 
 INSERT INTO TEXTMESSAGESCOMETTRACKER
 (TEXTMESSAGEID, ORDERID, ORDERNUM, ORDERUSERID, ORDERUSERNUM, ORDERUSERNAME,
  ORDERSTATUSID, ORDERSTATUS, ORDERGPSID, ORDERPHONEDATAID, SYSTEMDATEINSERTED, SYSTEMDATEUPDATED)
 VALUES
 (@TEXTMESSAGEID, @COMETTRACKERORDERID, @COMETTRACKERORDERNUM, @COMETTRACKERORDERUSERID, @COMETTRACKERORDERUSERNUM, @COMETTRACKERORDERUSERNAME,
  @COMETTRACKERORDERSTATUSID, @COMETTRACKERORDERSTATUS, @COMETTRACKERORDERGPSID, @COMETTRACKERORDERPHONEDATAID, GETDATE(), GETDATE())
END
ELSE
BEGIN
 -- LOGIC IS CONFUSING BELOW BECAUSE AT ONE TIME SUPPORTED MULTIPLE EXISTING ORDER STATUSES AT ONE TIME
 -- WHERE WE WOULD ARCHIVE THE PREVIOUS ONE, NOW WE ONLY SUPPORT ONE AND CONTINUALLY UPDATE THAT ONE
 SELECT TOP 1 @TEXTMESSAGEID = TM.TEXTMESSAGEID
 FROM TEXTMESSAGES TM (SERIALIZABLE)
 INNER JOIN TEXTMESSAGESCOMETTRACKER TMC (SERIALIZABLE) ON TM.TEXTMESSAGEID = TMC.TEXTMESSAGEID
 WHERE CAST(TMC.ORDERID AS INT) = CAST(@COMETTRACKERORDERID AS INT) AND CAST(TMC.ORDERSTATUSID AS INT) = CAST(@COMETTRACKERORDERSTATUSID AS INT)
 ORDER BY TM.SYSTEMDATEINSERTED DESC
 UPDATE TEXTMESSAGES SET
 INTERNALSHORTID = @INTERNALSHORTID,
 TRUCKID = @TRUCKID,
 DRIVERID = @DRIVERID,
 EQUIPMENTNUMBER = @EQUIPMENTNUMBER,
 CHASSISNUMBER = @CHASSISNUMBER,
 SEALNUMBER = @SEALNUMBER,
 BILLOFLADINGNUMBER = @BILLOFLADINGNUMBER,
 CONTAINERTYPE = @CONTAINERTYPE,
 PIECES = @PIECES,
 WEIGHT = @WEIGHT,
 USER1 = @USER1,
 USER2 = @USER2,
 USER3 = @USER3,
 USER4 = @USER4,
 EMPTYGOOD = @EMPTYGOOD,
 LOTROW = @LOTROW,
 HOURSDELAYED = @HOURSDELAYED,
 USERCOMMENTS = @USERCOMMENTS,
 EXTERNALSTATUS = @EXTERNALSTATUS,
 CURRENTCITY = @CURRENTCITY,
 CURRENTSTATE = @CURRENTSTATE,
 --MESSAGETEXT = @MESSAGETEXT,
 --EXTERNALDATERECEIVED = @EXTERNALDATERECEIVED,
 SYSTEMDATEUPDATED = GETDATE()
 WHERE TEXTMESSAGEID = @TEXTMESSAGEID
 UPDATE TEXTMESSAGES SET
 MESSAGETEXT = @MESSAGETEXT,
 EXTERNALDATERECEIVED = @EXTERNALDATERECEIVED
 WHERE TEXTMESSAGEID = @TEXTMESSAGEID
 UPDATE TEXTMESSAGESCOMETTRACKER SET
 ORDERID = @COMETTRACKERORDERID,
 ORDERNUM = @COMETTRACKERORDERNUM,
 ORDERUSERID = @COMETTRACKERORDERUSERID,
 ORDERUSERNUM = @COMETTRACKERORDERUSERNUM,
 ORDERUSERNAME = @COMETTRACKERORDERUSERNAME,
 ORDERSTATUSID = @COMETTRACKERORDERSTATUSID,
 ORDERSTATUS = @COMETTRACKERORDERSTATUS,
 ORDERGPSID = @COMETTRACKERORDERGPSID,
 ORDERPHONEDATAID = @COMETTRACKERORDERPHONEDATAID,
 SYSTEMDATEUPDATED = GETDATE()
 WHERE TEXTMESSAGEID = @TEXTMESSAGEID
END
IF @TEXTMESSAGEID IS NULL OR @TEXTMESSAGEID = 0
BEGIN
 SELECT TOP 1 @TEXTMESSAGEID = TM.TEXTMESSAGEID
 FROM TEXTMESSAGES TM (SERIALIZABLE)
 INNER JOIN TEXTMESSAGESCOMETTRACKER TMC (SERIALIZABLE) ON TM.TEXTMESSAGEID = TMC.TEXTMESSAGEID
 WHERE CAST(TMC.ORDERID AS INT) = CAST(@COMETTRACKERORDERID AS INT) AND CAST(TMC.ORDERSTATUSID AS INT) = CAST(@COMETTRACKERORDERSTATUSID AS INT)
 ORDER BY TM.SYSTEMDATEINSERTED DESC
END
RETURN @TEXTMESSAGEID
SET NOCOUNT OFF
GO