Can I enforce one field being dependent on another?
You can use a CHECK constraint with a CASE expression. If check2 is enabled, make sure check1 is enabled too, otherwise you can default to a no-op ("checking" that check1 = check1). For simplicity I'm assuming these columns are not NULLable.

CREATE TABLE dbo.foo
(
  check1 BIT NOT NULL DEFAULT 0,
  check2 BIT NOT NULL DEFAULT 0,
  CONSTRAINT ck_both CHECK (check1 = CASE WHEN check2 = 1 THEN 1 ELSE check1 END)
);

INSERT dbo.foo DEFAULT VALUES;             -- 0,0 succeeds
INSERT dbo.foo(check1,check2) VALUES(1,0); -- succeeds
INSERT dbo.foo(check1,check2) VALUES(1,1); -- succeeds
GO
INSERT dbo.foo(check1,check2) VALUES(0,1); -- fails


To add this constraint to your existing table:

ALTER TABLE dbo.tablename
  ADD CONSTRAINT ck_BothBits
  CHECK (check1 = CASE WHEN check2 = 1 THEN 1 ELSE check1 END);


If the columns are NULLable (hopefully they aren't), you can say something like this (untested):

ALTER TABLE dbo.tablename
  ADD CONSTRAINT ck_BothBits
  CHECK (COALESCE(check1,0) = CASE 
    WHEN check2 = 1 THEN 1 ELSE COALESCE(check1,0) END);


With that constraint in place:

INSERT dbo.foo(check1,check2) VALUES(NULL,NULL) -- succeeds
INSERT dbo.foo(check1,check2) VALUES(1,0);      -- succeeds
INSERT dbo.foo(check1,check2) VALUES(1,1);      -- succeeds
INSERT dbo.foo(check1,check2) VALUES(1,NULL);   -- succeeds
INSERT dbo.foo(check1,check2) VALUES(0,NULL);   -- succeeds
INSERT dbo.foo(check1,check2) VALUES(NULL,0);   -- succeeds
GO
INSERT dbo.foo(check1,check2) VALUES(0,1);      -- fails
GO
INSERT dbo.foo(check1,check2) VALUES(NULL,1);   -- fails