I'm not sure about plan guides, but in regular queries it's legal in 2005. If you are using aliases the nolock needs to come after the alias.
This will generate a syntax error:
FROM dbo.Product WITH(NOLOCK) p
FROM dbo.Product p WITH(NOLOCK)
Be aware that using NOLOCK without the WITH is deprecated and will stop working in some future version of SQL. That said, most of the folks around here will tell you it's best not to use NOLOCK at all as it can cause inconsistent results.