I would be inclined to do it like this:
SET StatusID = '51'
FROM ExpressDB.dbo.epic_LineItems AS LI
INNER JOIN [ExpressDB].[dbo].[epic_LineItemCustomFields] AS CF
ON CF.LineItemId = LI.LineItemId
AND CF.Value = ‘Disposed’
WHERE LI.StatusID IS NULL OR StatusID <> '51' -- Don't UPDATE if already set to 51 !!
Are you sure you want to NAME the database in the query? If it will only ever run on "current" database (rather than be run IN a different database and need to act ON the [ExpressDB] database, then better to leave that out - that way it you rename / copy [ExpressDB] to something else (such as a DEV DB or a TEST DB) then it will still work.
If this DOES have to operate on a database which is NOT the current DB then i recommend that you use a SYNONYM instead of the actual database name - that way IF it changed you just need to change the definition of the SYNONYM rather than every single reference to [ExpressDB] in the code. (Same thing if you have any 4-part naming for a table e.g. MyRemoteServer.MyRemtoeDB.dbo.MyRemtoeTable)