It's not expensive to construct a data context regardless of how many tables it manages, so that shouldn't be a criterion when deciding whether to have one or more separate data context implementations. A new data context is "empty" until you actually start using it, and table instances are created as needed.
What makes a data context instance expensive is when you use the same instance over and over again for tracking changes to different objects - for example, using a cached instance of a data context in an ASP.NET application for all database operations (now that's a no-no).
As long as you use the data context as intended, in a unit-of-work pattern, it doesn't matter how many tables it can manage at the class definition level, as you only instantiate the ones you need within the current unit of work.
To me, the data context logically represents the target database, so it should represent all the entities that are mapped within that database, whether there are 10 or 100 - splitting it up really offers no benefit other than less lines of code in a given class, but if that's something you care about then by all means, have different classes.